Hi NetLook!
Ich möchte das Array solange auslesen, bis es die Letzte Unterkategorie ausgelesen hat.
Um letztendlich was damit zu tun?
Möchtest du eine Tabelle ausgeben, eine Liste oder...?
Ohje... ;-)
// String
$Tiefe = "['getCategoryTreeResult']['Nodes']['Category']";
$i=0;
function Abfragen($Tiefe){
// $Result ist nicht definiert, wenn $Result ein Array wäre,
// dann könntest du es nicht mit einem String verknüpfen.
foreach($Result.$Tiefe as $ResultWert){
echo "1->: ".$ResultWert."<br>";
if(is_array($ResultWert) && !empty($ResultWert)){
$Tiefe = $Tiefe."[$i]['Nodes']['Category']";
Abfragen($Tiefe);
$i++;
}
else
{
echo "2->: ".$ResultWert."<br>";
}
}
}
Ist $ResultWert also ein Array, wird $Tiefe mit weiteren Array Keys erweitert und die Funktion damit erneut aufgerufen.
Das geht aber so nicht.
Ich habe eine Funktion geschrieben, die aus einem Array eine Liste generiert:
function array2list($array,$return = false,$start = true) {
// Liste wird initialisiert
$list = '';
if($start) {
// Anfang und Ende der Liste
$list = "<ul>\n".array2list($array,$return,false)."</ul>";
} else {
// Wenn Array leer ist, wird abgebrochen
if(!empty($array)) {
// Wenn der Wert $array ein Array ist,
// wird dir Funktion rekursiv aufgerufen
if(is_array($array)) {
foreach($array as $node)
$list .= array2list($node,$return,false);
return $list;
// Listenpunkt wird zurückgegeben
} else {
$list .= "\t<li>".$array."</li>\n";
return $list;
}
}
}
// Ausgabe/Rückgabe der Liste
if($return)
return $list;
else echo $list;
}
Die Funktion array2Table habe ich mal verändert, aber habe sie nicht so hinbekommen, das einfach alle Werte nur untereinander geschrieben werden.
Okay, jetzt nochmal für mich zum mitschreiben: Du möchtest also alle Inhalt von $array in einer Liste untereinander ausgeben?!
Zudem verstehe ich auch nicht, wie es hier funktioniert, dass das Array komplett durchgegangen wird, ohne das irgendwo neue Array Keys übergeben werden?!
Mit der Zeile foreach ($array as $row) {
wird das Array zeilenweise ausgelesen und foreach ($row as $cell) {
greift dann auf die einzelnen Elemente zu.
Allerdings funktioniert das nur bis zu zweidimensionalen Arrays.
Für mehrdimensionale musst du, wie auch bei der Beschreibung der Parameter steht, $recursive=true
angeben.
Ich hoffe, ich konnte helfen.
MfG H☼psel
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)