Klaus: Array rekursiv darstellen?

Hallo,

aus einer Funktion bekomme ich als Ergebnis ein mehrdimensionales Array $result zurückgeliefert.

Jedes Element $a...$z von $result kann selber wieder ein Array sein, muss aber nicht, usw.

Meine Frage ist nun, wie ich $result am geschicktesten rekursiv auslese. Anzeigen lassen kann man sich das ja am Einfachsten mit print_r($result), aber das ist ja unformatiert und ich möchte die Array-Einträge als verschachtelte Tabelle ausgeben.

Habt Ihr einen Tipp für mich?

Dank & Gruss

Klaus

  1. Hello,

    Habt Ihr einen Tipp für mich?

    Ja.
    Mach es genauso, wie Du es beschreibst.
    Beschreibe es vorher noch ein wenig genauer.

    Und vor allem: trenne die Erzeugung der Ausgabevariablen von der eigentlichen Ausgabe.

    Schreib Dir also eine Funktion, die eine Tabelle erzeugt (als Variable) und diese zurückgibt.
    Wenn Du dann innerhalb des <td>-Elementes auf ein Array stößt, rufe diese Funktion auf.

    Schon ist Deine Rekursion fertig.

    Mit einem geschickten CSS (wahl passender Klassen) kannst Du das Ganze dann später hübsch bunt machen.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  2. Hi,

    <<print_r($result), aber das ist ja unformatiert und ich möchte die <<Array-Einträge als verschachtelte Tabelle ausgeben.

    Dann setze doch einfach ein <pre> davor, dann geht dir dir Formtierung nicht verloren :)

    Grüße, Chrisi ...

  3. Wird print_r() mit einem zusätzlichen Flag aufgerufen, schreibt es die Array-Struktur nicht in den Ausgabepuffer,
    sondern in einen String:

    $output = print_r($mein_array, 1);

    Den kannst du dann formatieren, wie du lustig bist.

    Die Online-Dokumentation zu print_r() (http://de.php.net/manual/de/function.print-r.php) hat auch
    ein paar Beispiele parat, wie man verschachtelte Arrays schöner ausgeben kann (Ein Tabellenlayout ist
    aber leider nicht dabei).

    --
    EisFuX