2010-07-15 204 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空條目。