2017-03-17 17 views
0

私は現在、カスタムWordPressテーマを作成しており、foreachループの問題を抱えています。私は自分のワードプレスサイトで問題を表している簡単なforeachループを再作成しました。なぜ私のPHP foreachループは配列の最後の値だけを返しますか?

$ numbersの戻り値は1 2 3 4と予想されますが、$数値をエコーすると、数値は4しか返されません。その他の回答Stack Overflowで見つかった箇所は、セミコロンまたは変数名が2回使用されています。下の図は、ここでは該当しませんが、値は配列の最後の値です。誰でも$ 2が1 2 3 4を返すように、このコードについて何を変更すべきか説明できますか?前もって感謝します。

<?php 

$my_arrays = [[1, 2],[3, 4]]; 
foreach($my_arrays as $array) { 
    foreach($array as $a) { 
    $numbers = $a . " "; 
    } 

} 

echo $numbers; 

?> 
+6

'$ numbers。= $ a。 ";" ';' 'の前に'。 'を付けてください。 – cmorrissey

+1

あなたは常にあなたの値を上書きするので、' $ numbers。= $ a。 ";"またはそれ以上のもの$ numbers [] = $ a; '後で' print implode( ''、$ numbers); ' – JustOnUnderMillions

答えて

5

。=を使用して文字列を追加します。 =を使用するたびに、。=を使用して、以前の値を上書きしていました。これを既存の文字列に追加します。

<?php 

$my_arrays = [[1, 2],[3, 4]]; 
foreach($my_arrays as $array) { 
    foreach($array as $a) { 
    $numbers .= $a . " "; //Use .= to append a string 
    } 

} 

echo $numbers; 

?> 
0

この

<?php 
$my_arrays = [[1, 2],[3, 4]]; 
foreach($my_arrays as $array) { 
    foreach($array as $a) { 
    $numbers .= $a . " "; 
    } 
} 
echo $numbers; 
?> 
+0

これはすでに掲載されています:) – hassan

+0

は、別のアプローチをより良く提供します。 – hassan

1

代替ソリューションやろう:その後、それらを内破、

アレイに配列要素を追加し、これはの終わりに空きスペースを印刷防ぐことができますテキスト。

$my_arrays = [[1, 2],[3, 4]]; 
$numbers = []; 
foreach($my_arrays as $array) { 
    foreach($array as $a) { 
    $numbers[] = $a; 
    } 
} 
echo implode(' ', $numbers); 
+2

...または 'trim()'がそれを行います。 – CD001

+0

まあまあ;)個人的に私はこの方法を好む – hassan

関連する問題