André Laugks: Array rekursiv füllen

Hallo!

Ich möchte ein Array rekursiv füllen.

// $liste[id] = parent (id);

1. Ebene

$liste['1'] = 0;
$liste['2'] = 0;
$liste['3'] = 0;

2. Ebene

$liste['4'] = 1;
$liste['5'] = 3;
$liste['6'] = 3;
$liste['7'] = 2;

3. Ebene

$liste['8'] = 6;

Mein Problem ist, daß ich immer nur bis zur dritten Ebene komme, also die nicht eigehängt bekomme, was nach dem rekursiven Aufruf folgt.

Laut meiner Kontrollanzeigen kann ich sehen das die Rekursion funktioniert nur wird die dritte Ebene nicht eingehangen und ich habe keine Ahnung wieso.

Vielleicht weil bei der Rekursion nur ein Teil des array weiter gegeben wird und dieser Teil somit nicht hinzugefügt werden kann oder ich Murks gemacht habe?!

PHP-Quellcode: http://www.pb82.de/_extern/selfforum/2004_12_01/quellcode_php.php

MfG, André Laugks

--
L-Andre @ gmx.de
  1. Hello André,

    ich muss gestehen, dass ich nicht verstehe, was Du mit Ebenen meinst. Und die Rekursion konnte ich auch nicht finden im Quellcode, oder habe ich die einfach übersehen?

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo!

      ich muss gestehen, dass ich nicht verstehe, was Du mit Ebenen meinst. Und die Rekursion konnte ich auch nicht finden im Quellcode, oder habe ich die einfach übersehen?

      Die Ebenen ergeben sich aus der Child- zu Parent-Beziehung.

      // $liste[id] = parent (id);

      1. Ebene

      $liste['1'] = 0;
      $liste['2'] = 0;
      $liste['3'] = 0;

      2. Ebene

      $liste['4'] = 1;
      $liste['5'] = 3;
      $liste['6'] = 3;
      $liste['7'] = 2;

      3. Ebene

      $liste['8'] = 6;

      Die Rekursion läuft hier:

      rek_array($subNav['subNav'], $nav_id, $parent, 1);

      Sie funktioniert auch, was ich anhand der Kontrollausgaben sehen kann.

      Aber hier liegt auch das Problem. Ich habe gerade ein Beispiel gefunden. Mein Code "entspricht" fast dem Beispiel.

      Aufgrund dieses Beispieles habe ich meinen Fehler gesehen. Bei rek_array(...) kommt ein Rückgabewert den ich nicht annehme.

      MfG, André Laugks

      --
      L-Andre @ gmx.de
      1. Hello,

        warum baust Du dann das Array nicht gleich ale Baum auf?
        Da wäre doch dann jede Ebene klar bestimmbar.

        Oder habe ich nun schon wieder was nicht richtig verstanden?

        Ist es etwa die Aufgabe, eine rekursive (Baum) Struktur auf eine lineare (Tabelle) abzubilden?

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

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo!

          warum baust Du dann das Array nicht gleich ale Baum auf?
          Da wäre doch dann jede Ebene klar bestimmbar.

          Oder habe ich nun schon wieder was nicht richtig verstanden?

          Ist es etwa die Aufgabe, eine rekursive (Baum) Struktur auf eine lineare (Tabelle) abzubilden?

          Dieses Array wird eine Datenbanktabelle sein in der eine Baumstruktur abgebildet ist.

          MfG, André Laugks

          --
          L-Andre @ gmx.de