Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP eine hierarchische Baumstruktur aus Eltern-Kind-Beziehungen erstellen?

Wie kann ich in PHP eine hierarchische Baumstruktur aus Eltern-Kind-Beziehungen erstellen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-14 11:41:11234Durchsuche

How Can I Build a Hierarchical Tree Structure in PHP from Parent-Child Relationships?

Erstellung hierarchischer Baumstrukturen aus Eltern-Kind-Beziehungen

Der Aufbau hierarchischer Baumstrukturen aus Eltern-Kind-Beziehungen ist eine häufige Aufgabe in der Programmierung. Um dies zu erreichen, kann ein rekursiver Ansatz verwendet werden, der die Daten effektiv in verschachtelten Einheiten organisiert.

In PHP erfordert die Konvertierung einer Reihe von Eltern-Kind-Paaren in einen hierarchischen Baum zwei Schlüsselfunktionen: Parsen und Drucken. Die Parsing-Funktion durchläuft systematisch die Kind-Eltern-Paare, um eine hierarchische Datenstruktur aufzubauen. Anschließend wandelt die Druckfunktion diese Struktur in eine Reihe verschachtelter ungeordneter HTML-Listen um, wobei jedes Listenelement ein untergeordnetes Element darstellt.

Betrachten Sie als Beispiel die folgenden Eltern-Kind-Paare:

Child : Parent
H : G
F : G
G : D
E : D
A : E
B : C
C : E
D : NULL

Um diese Daten zu analysieren, definieren wir die Funktion parseTree:

function parseTree($tree, $root = null) {
    $return = array();
    foreach($tree as $child => $parent) {
        if($parent == $root) {
            unset($tree[$child]);
            $return[] = array(
                'name' => $child,
                'children' => parseTree($tree, $child)
            );
        }
    }
    return empty($return) ? null : $return;
}

Als nächstes definieren wir die Funktion printTree um die analysierte Hierarchie in ungeordnete HTML-Listen umzuwandeln:

function printTree($tree) {
    if(!is_null($tree) && count($tree) > 0) {
        echo '<ul>';
        foreach($tree as $node) {
            echo '<li>'.$node['name'];
            printTree($node['children']);
            echo '</li>';
        }
        echo '</ul>';
    }
}

Durch die Kombination dieser beiden Funktionen können wir Kind-Eltern-Paare erfolgreich in hierarchische Baumstrukturen umwandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP eine hierarchische Baumstruktur aus Eltern-Kind-Beziehungen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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