Matthias Bode: Sitemap selber basteln

Hallo zusammen,
ich stehe gerade voll auf dem Schlauch und hoffe, ihr könnt mir helfen.

Folgendes:
ich habe verschiedene Gruppen, die ich in einer Sitemap darstellen will.
Es gibt Hauptgruppen und Untergruppen, die wiederum Untergruppen haben und soweiter. Anzahl der Ebenen unbekannt. Die Untergruppen haben jeweils ein Feld, in dem die übergeordnete Gruppe angegeben ist.

Beispiel:
Hauptgruppe1  ID = H1
Hauptgruppe2  ID = H2
UntergruppeEbene1 ID=H101 Ü = H1
UntergruppeEbene2 ID=H10101 Ü = H101
....
Das mit den IDs ist leider nicht so schön wie hier in dem Beispiel sondern frei vergeben.

Nun möchte ich die ausgeben lassen und zwar schick geordnet, alle Gruppen auf der selben Ebene sollen auch dementsprechend angezeigt werden, etc.

Nun wollte ich das ganze über while-Schleifen machen. An sich ja auch ganz nett, das Problem vor dem ich stehe ist nur, dass es ja eine unbestimmte Anzahl (je nach Anzahl der Ebenen) von  while-Schleifen in While-Schleifen geben müsste, soweit ich mir das vorgestellt habe.
Ich müsste also abgfragen, ob es noch Gruppen eine Ebene tiefer gibt, und wenn ja, die auch nochmal abklappern.

Irgendwie krieg ich das nicht zusammengebastelt.
Wäre nett, wenn ihr mir einen Denkansatz gebt.

Gruß
Matthias

  1. Hi,

    Ich müsste also abgfragen, ob es noch Gruppen eine Ebene tiefer gibt, und wenn ja, die auch nochmal abklappern.

    Richtig. Das Stichwort lautet Rekursion.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Ich müsste also abgfragen, ob es noch Gruppen eine Ebene tiefer gibt, und wenn ja, die auch nochmal abklappern.

      Richtig. Das Stichwort lautet Rekursion.

      MfG ChrisB

      Das hab ich mir auch gedacht irgendwie eine Variable "aktuelleÜbergruppe",
      die dann immer geändert wird. Leider krieg ich das gerade nicht auf die Reihe....
      Steh aufm Schlauch

      1. Hallo Matthias,

        Ich müsste also abgfragen, ob es noch Gruppen eine Ebene tiefer gibt, und wenn ja, die auch nochmal abklappern.

        Richtig. Das Stichwort lautet Rekursion.

        Steh aufm Schlauch

        die englischsprachige Wikipedia könnte Dir weiterhelfen Tree Traversal.

        Die deutschsprachige Wikipedia schwieg sich darüber aus, als ich das letztemal danach suchte :-( Ach ja, die PHP-Standardbibliothek könnte Dir dabei helfen, die hat für sowas Iteratoren. Wie man diese verwenden kann, findest Du zum Beispiel in diesem von mir kommentierten Code von frank. Beachte bitte das Folgeposting. Dort geht es um das Durchlaufen einer Verzeichnisstruktur, die Analogie zu Deinem Anwendungsfall solltest Du sehen.

        Freundliche Grüße

        Vinzenz