2012-04-15 4 views
1

Ich habe den folgenden Code, von dem ich Array-Elemente durch Kommas getrennt Echo. Der Code gibt die Liste aus, aber ohne Kommas. Was vermisse ich? Basic implode foreach

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

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

EDIT 1: wo $elements Arrays verschachtelt sind.

EDIT 2: Arbeits Snippet:

<?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

Wenn der '$ value' nur 1 Element enthält, hat' implode() 'keinerlei Auswirkungen. –

+0

Können Sie einen 'var_dump' von $ array posten? –

Antwort

4

Warum Sie $elements = $array; und dann nie mit $elements zuweisen?

Sie müssen auch keine Schleife (foreach), um ein Array implodieren.

Try this:

<?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); 
?> 

Hier ist die Dokumentation auf implode()

Sie um spielen und testen Sie den obigen Code here.

Auch das nächste Mal, fügen Sie das Tag php, andernfalls werden unsere Codes nicht erhalten Farbsyntax.

+0

Sorry, ich habe vergessen zu erwähnen, dass $ -Elemente verschachtelte Arrays sind. Ihre Antwort gibt mir Array, Array, Array ... – elbatron

+0

@elbatron Könnten Sie 'print_r ($ array);' und sagen Sie mir die Ausgabe in Ihrer (bearbeiteten) Frage? Den tatsächlichen Wert von $ Array zu kennen, wird mir helfen, Ihr Problem besser zu verstehen. Wenn es zu lang ist, dann gib mir einfach die ersten Elemente. Vielen Dank. – hobbes3

+0

Array ([0] => Array ([Schauspieler] => Natalie Portman) [1] => Array ([Schauspieler] => Vincent Cassel) [2] => Array ([Schauspieler] => Mila Kunis)) – elbatron