2010-07-15 203 views
1

让我说我有一个数组,这样存储。将字符串数组拆分成

Array ( 
    [0] => width: 650px;border: 1px solid #000; 
    [1] => width: 100%;background: white; 
    [2] => width: 100%;background: black; 
) 

我应该如何通过分隔“;”使数组[0]字符串分成片段?然后我想再次将它们保存在数组中,或将它们显示出来。我应该怎么做?

Array(
    [0] => width: 650px 
    [1] => border: 1px solid #000 
) 

任何想法?感谢先进

回答

0

我会亲自使用preg_split摆脱会从最后一个分号发生额外的数组元素的...

$newarray = array(); 
foreach ($array as $i => $styles): 
    // Split the statement by any semicolons, no empty values in the array 
    $styles = preg_split("/;/", $styles, -1, PREG_SPLIT_NO_EMPTY); 
    // Add the semicolon back onto each part 
    foreach ($styles as $j => $style) $styles[$j] .= ";"; 
    // Store those styles in a new array 
    $newarray[$i] = $styles; 
endforeach; 

编辑:别t将分号加到每行:

$newarray = array(); 
foreach ($array as $i => $styles): 
    // Split the statement by any semicolons, no empty values in the array 
    $newarray[$i] = preg_split("/;/", $styles, -1, PREG_SPLIT_NO_EMPTY); 
endforeach; 

应该输出:

Array(
    [0] => width: 650px; 
    [1] => border: 1px solid #000; 
) 

不像爆炸,这应该输出:

Array(
    [0] => width: 650px; 
    [1] => border: 1px solid #000; 
    [2] => ; 
) 
+0

ops,对不起,如果我想彻底忽略“;”怎么办? – arkchong 2010-07-15 03:11:36

+0

如果您不希望分号刚删除那里的第二个foreach语句。 – animuson 2010-07-15 03:12:22

5

的爆炸命令:

explode(';', $array); 

然后您就必须把“;”到每个字符串的末尾。

2

一个例子

foreach($array as $item) { 
    $mynewarray = explode(";",$item); 
    foreach($mynewarray as $newitem) { 
     $finalarray[] = $newitem.";"; 
    } 
    //array is ready 
} 
0

试试这个:

$a = ""; 

     foreach($array as $value) { 
       flush(); 
       $a .= explode(";",$value); 
     } 
+1

那里冲洗的目的是什么?没有任何东西时你不冲厕所...... – animuson 2010-07-15 03:04:45

1
$arr = array('width: 650px;border: 1px solid #000;','width: 100%;background: white;','width: 100%;background: black;'); 

$arr = explode(';',implode(';',$arr)); 
for($i=0; $i < sizeof($arr)-1; $i++) { $arr[$i] .= ';'; } 

print_r($arr); 

将打印所有分号分隔行作为数组中的单独实体...可以删除的+1空条目。