2015-03-31 69 views
-1

我的代碼是一個數組...PHP - 爆炸中的每一項創建由爆炸

$string ="foo:bar,bar,bar|foo2:bar2,bar2,bar2"; 

$first_array = explode("|", $string); 

function split(&$block) { 

$block = explode(":", $block); 

} 

array_walk($first_array, "split"); 

echo $block["0"]["0"]; 
echo "<br />"; 
echo $block["0"]["1"]; 

?> 

感謝您的幫助迄今。從我所收集的這應該是提供的代碼的乾淨版本。這不會迴應任何內容,也不會提供代碼。

+0

$ final_array將會是一個數組數組。 'echo $ result'只會吐出單詞'Array',而不是數組的內容。 – 2015-03-31 21:48:08

+0

也許可以嘗試使用像''和''這樣的更明智的分隔符,而不是手動輸入並錯誤輸入的「?!@ ^&$%@#'和'&*%&@#*&^%'在某處扔掉它。 – developerwjk 2015-03-31 21:49:02

+0

也得到你的變量名稱一致。它是'$ city_array'還是'$ cityarray' ... – developerwjk 2015-03-31 21:50:58

回答

1

這將這樣的伎倆:

$string ="foo:bar:bar:bar|foo2:bar2:bar2:bar2"; 

// first explode on | 
$first_array = explode("|", $string); 
// this function go on each lines of an array and transform each by a function 
array_walk($first_array, function(&$item) { 
     // so for each line explode with ':' as delimiter 
     $item = explode(':', $item); 
}); 

// To check all lines of the array 
foreach($first_array as $line_array) { 
    //my code for each sub-array 
} 

// To get only the last (second) 
$second_sub = array_pop($first_array); 

// if you want one dimension with all exploded you can use 
// this function split with a regexp pattern 
// "/[\|:,]+/" foreach "|" or ":" or "," split the string 
preg_split("/[\|:,]+/", $string); 
+0

你能解釋一下我的語法嗎?謝謝! – Allenph 2015-03-31 22:25:28

+0

剛剛編輯幾個解釋 – Charkan 2015-03-31 22:31:13

+0

做到了嗎?.. – Charkan 2015-03-31 22:37:53

0

不要使用$塊,因爲它在另一個示波器的定義,而且你不能給「拆分」爲你的函數的名稱,因爲它是一個現有的PHP函數

$string ="foo:bar,bar,bar|foo2:bar2,bar2,bar2"; 

$first_array = explode("|", $string); 

function mysplit(&$block) { 

$block = explode(":", $block); 

} 

array_walk($first_array, "mysplit"); 

echo $first_array[0][0]; 
echo "<br />"; 
echo $first_array[0][1];