Rekursives Generieren mehrdimensionaler Arrays aus einem Datenbankergebnis
In diesem Szenario besteht das Ziel darin, eine verschachtelte Array-Darstellung der abgerufenen hierarchischen Daten zu erstellen eine Datenbankabfrage. Die Ergebnistabelle enthält Seiten oder Kategorien mit Eltern-Kind-Beziehungen.
Um dies zu erreichen, verwenden wir eine rekursive Funktion, buildTree(). Diese Funktion benötigt ein Array von Elementen und eine optionale übergeordnete ID (standardmäßig 0). Es durchläuft jedes Element und identifiziert diejenigen, die die angegebene übergeordnete ID haben.
Für jedes untergeordnete Element ruft sich die Funktion rekursiv auf, um seinen Unterbaum zu erhalten. Das untergeordnete Element wird dann um seine untergeordneten Elemente erweitert, was zu einer hierarchischen Struktur führt. Dieser Prozess wird fortgesetzt, bis alle Elemente verarbeitet sind, wodurch ein verschachteltes Array entsteht, das die hierarchische Datenstruktur widerspiegelt.
Beispiel
Bedenken Sie die zuvor bereitgestellte Datenbanktabelle:
id | parent_id | title |
---|---|---|
1 | 0 | Parent Page |
2 | 1 | Sub Page |
3 | 2 | Sub Sub Page |
4 | 0 | Another Parent Page |
Mit der Funktion buildTree() können wir die gewünschte Verschachtelung generieren Array:
$elements = [ ['id' => 1, 'parent_id' => 0, 'title' => 'Parent Page'], ['id' => 2, 'parent_id' => 1, 'title' => 'Sub Page'], ['id' => 3, 'parent_id' => 2, 'title' => 'Sub Sub Page'], ['id' => 4, 'parent_id' => 0, 'title' => 'Another Parent Page'], ]; $tree = buildTree($elements);
Die Ausgabe $tree wird sein:
[ [ 'id' => 1, 'parent_id' => 0, 'title' => 'Parent Page', 'children' => [ [ 'id' => 2, 'parent_id' => 1, 'title' => 'Sub Page', 'children' => [ [ 'id' => 3, 'parent_id' => 2, 'title' => 'Sub Sub Page', ] ] ] ] ], [ 'id' => 4, 'parent_id' => 0, 'title' => 'Another Parent Page', ] ]
Dieses verschachtelte Array bewahrt die in der Datenbanktabelle definierten hierarchischen Beziehungen und ermöglicht so einen effizienten Zugriff und eine effiziente Verarbeitung der verschachtelten Daten Strukturen.
Das obige ist der detaillierte Inhalt vonWie erstellt man rekursiv ein mehrdimensionales Array aus hierarchischen Datenbankdaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!