2017-01-06 10 views
-1

配列内のすべての値をエコーし​​ようとするとエラーが発生しますが、元の配列の配列の値をエコーし​​てエコーします。PHP - 配列内のすべての配列を展開するには

while (list($key, $val) = each($bal)) { 
    If (is_array($val)){ 
      while (list($k, $v) = each($v)) { 
       If (is_array($va)){ 
        while (list($ka, $va) = each($va)) { 
         echo "$ka => $va\n <br>"; 
        } 
       } else { 
        echo "$k => $v\n <br>"; 
       } 
      } 
    } else { 
      echo "$key => $val\n <br>"; 
    } 
} 

私は取得していますエラーが

警告です:それぞれの()に渡される変数されていない Cの配列やオブジェクト:\ xampp2 \ htdocsにお金\生産\ \ simalgorithm1.phpに私は、チェックラインpreviをしたように、ライン234

ライン234はwhile (list($k, $v) = each($v)) {

であるが、これは自動的に配列されないべきではありませんああ?私の構文はオフにする必要があります。誰かが私が見ていないことを私が大いに感謝してくれるのを助けることができたら、私はPHPにかなり新しいです。

while (list($k, $v) = each($v)) { 

私はあなたがこの

while (list($k, $v) = each($val)) { 

EDITをしたいと思います:私はまた、配列は、より多くのネストされている場合は、あなたのコードが動作しないことを指摘します

+0

質問は簡単な入力ミスであり、将来の訪問者にとって有用ではない可能性があるため、トピックはトピックとして閉じてください。 – faintsignal

答えて

0

問題は、このラインでありますいくつかのレベルの深さ。再帰関数を定義するか、var_exportまたはvar_dumpを使用することを検討する必要があります。

+0

それでした、ありがとう!私がもっと深く進むにつれて、この配列がどのくらい深いかを理解しており、おそらくこれを再帰的にするでしょう。 –

+0

他にもいくつかのエラーがあります。たとえば、定義する前に$ vaを参照します。 –

+0

また、リストとそれぞれの代わりにforeachを使うことを真剣に検討したいと思います。構文には括弧が少なく、入力と読み込みが簡単です。 –

0

場合によっては、最も簡単な解決策が、解決された最良の1行問題です。

print_r($ bal);

関連する問題