2017-01-06 1 views
-1

Mein Code gibt einen Fehler, wenn ich versuche, alle Werte innerhalb eines Arrays zu echo, aber auch die Werte von Arrays im ursprünglichen Array zu erweitern und zu echo.PHP - Wie erweitere ich alle Arrays innerhalb eines Arrays?

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>"; 
    } 
} 

Der Fehler I immer bin ist

Warning: Variable zu jedem() übergeben wird, kein Array oder ein Objekt in C: \ xampp2 \ htdocs \ Geld \ Produktion \ simalgorithm1.php on Linie 234

Linie 234 ist while (list($k, $v) = each($v)) {

Sollte dies nicht nicht automatisch ein Array sein, wie ich einen Scheck die Linie Previ tat ous? Meine Syntax muss aus sein Ich bin ziemlich neu in PHP, wenn jemand mir helfen könnte zu sehen, was ich nicht sehe, würde ich es sehr schätzen.

+0

Frage sollte als Off-Thema geschlossen werden, da es sich um einen einfachen Tippfehler handelt und nicht wahrscheinlich für zukünftige Besucher nützlich sein wird. – faintsignal

Antwort

0

Das Problem ist, diese Zeile:

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

Ich glaube, Sie dieses

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

EDIT wollen: Ich möchte auch darauf hinweisen, dass Ihr Code funktioniert nicht, wenn die Arrays mehr als eine verschachtelte wenige Ebenen tief. Sie sollten eine rekursive Funktion definieren oder var_export oder var_dump verwenden.

+0

Das war es, danke! Aber wenn ich tiefer gehe, merke ich, wie tief dieses Array geht und ich werde das wahrscheinlich rekursiv machen. –

+0

Sie haben auch einige andere Fehler. Z. B. beziehen Sie sich auf $ va, bevor Sie es jemals definieren. –

+0

Auch würde ich ernsthaft in Betracht ziehen, foreach anstelle von Liste und jedem zu verwenden. Die Syntax hat weniger Parens, einfacher zu tippen und zu lesen. –

0

Manchmal sind die einfachsten Lösungen das beste Ein-Zeilen-Problem.

print_r ($ bal);

Verwandte Themen