Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstellt man rekursiv ein mehrdimensionales Array aus hierarchischen Datenbankdaten?

Wie erstellt man rekursiv ein mehrdimensionales Array aus hierarchischen Datenbankdaten?

DDD
Freigeben: 2024-12-16 03:10:09
Original
948 Leute haben es durchsucht

How to Recursively Build a Multidimensional Array from Hierarchical Database Data?

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);
Nach dem Login kopieren

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',
    ]
]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage