Heim > Backend-Entwicklung > PHP-Tutorial > Wie konvertiere ich Eltern-Kind-Beziehungen in hierarchische Bäume in PHP?

Wie konvertiere ich Eltern-Kind-Beziehungen in hierarchische Bäume in PHP?

Linda Hamilton
Freigeben: 2024-12-26 09:57:10
Original
462 Leute haben es durchsucht

How to Convert Parent-Child Relationships into Hierarchical Trees in PHP?

Eltern-Kind-Beziehungen in hierarchische Bäume umwandeln

Beim Programmieren kann es notwendig sein, eine Reihe von Eltern-Kind-Beziehungen in eine umzuwandeln hierarchische Baumstruktur. Diese Aufgabe kann in PHP mithilfe eines rekursiven Ansatzes gelöst werden.

Beispieldaten:

Betrachten Sie den folgenden Satz von Eltern-Kind-Beziehungen:

Child : Parent
H : G
F : G
G : D
E : D
A : E
B : C
C : E
D : NULL
Nach dem Login kopieren

Umwandeln in einen hierarchischen Baum:

Um diese Daten in einen umzuwandeln Für die hierarchische Baumstruktur erstellen wir zwei PHP-Funktionen:

  • parseTree($tree, $root): Diese Funktion analysiert rekursiv die Kind-Eltern-Paare und erstellt den Baum.
  • printTree($tree): Diese Funktion durchläuft den Baum und druckt ihn als ungeordnete Liste.

parseTree-Funktion:

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

printTree-Funktion:

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

Verwendung:

Um diese Funktionen zunächst zu nutzen Initialisieren Sie das Array der Kind-Eltern-Paare. Rufen Sie dann parseTree mit dem Array und printTree mit dem resultierenden Baum auf:

$tree = array(
    'H' => 'G',
    'F' => 'G',
    'G' => 'D',
    'E' => 'D',
    'A' => 'E',
    'B' => 'C',
    'C' => 'E',
    'D' => null
);

$result = parseTree($tree);
printTree($result);
Nach dem Login kopieren

Ergebnis:

Die Ausgabe wird eine ungeordnete Liste sein, die den hierarchischen Baum darstellt:

<ul>
<li>D
<ul>
<li>G
<ul>
<li>H</li>
<li>F</li>
</ul>
</li>
<li>E
<ul>
<li>A</li>
<li>C
<ul>
<li>B</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Eltern-Kind-Beziehungen in hierarchische Bäume in PHP?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage