将字符串数组拆分为多个部分

时间:2010-07-15 02:50:11

标签: php arrays split

让我说我有一个像这样存储的数组。

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
)

有什么想法吗?谢谢高级

5 个答案:

答案 0 :(得分:5)

爆炸命令:

explode(';', $array);

然后你必须追加';'到每个字符串的末尾。

答案 1 :(得分:2)

一个例子

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

答案 2 :(得分: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空条目,您可以删除。

答案 3 :(得分: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;

编辑:不要在每行添加分号:

$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] => ;
)

答案 4 :(得分:0)

试试这个:

$a = "";

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