2012-04-15 58 views
1

我有下面的代碼,我想回顯用逗號分隔的數組元素。代碼輸出錯誤列表,但沒有逗號。我錯過了什麼? 基本內爆foreach

<?php 
    $array = get_field('casts'); 
    $elements = $array; 

    foreach($array as $key => $value) { 
     echo implode(', ', $value)}; 
?> 

EDIT 1:其中$elements嵌套陣列。

編輯2:工作片段:

<?php 
    $array = get_field('casts'); 
    $new_array = array(); 
    foreach($array as $sub_array) { 
     foreach($sub_array as $value) { 
      array_push($new_array, $value); 
     } 
    } 
    echo implode(", ", $new_array); 
?> 
+0

如果'$ value'只包含1個元素,'implode()'不會產生任何影響。 – 2012-04-15 08:09:32

+0

你可以發佈$ array的var_dump嗎? – 2012-04-15 08:12:46

回答

4

你爲什麼分配$elements = $array;從來就不是用$elements

此外,你不需要循環(foreach)來爆炸一個數組。

試試這個:

<?php 
$array = get_field('casts'); 
$new_array = array(); 
foreach($array as $sub_array) { 
    foreach($sub_array as $value) { 
     // this array_push() function adds $value to the end of $new_array. 
     array_push($new_array, $value); 
    } 
} 
echo implode(", ", $new_array); 
?> 

這裏是implode()

的文檔,你可以玩和測試上面的代碼here

下一次,添加標籤php,否則我們的代碼將不會獲得顏色語法。

+0

對不起,我忘了提及$元素是嵌套數組。你的回答給我陣列,陣列,陣列... – elbatron 2012-04-15 07:42:18

+0

@elbatron你可以做'print_r($ array);'並告訴我你的(編輯)問題的輸出?瞭解'$ array'的實際值將幫助我更好地理解您的問題。如果時間太長,那就給我頭幾個元素。謝謝。 – hobbes3 2012-04-15 07:44:58

+0

Array([0] => Array([actor] => Natalie Portman)[1] => Array([actor] => Vincent Cassel)[2] => Array([actor] => Mila Kunis)) – elbatron 2012-04-15 07:51:47