Während des Entwicklungsprozesses ist es häufig notwendig, flache Datenstrukturen in Baumstrukturen umzuwandeln, insbesondere in Szenarien, in denen hierarchische Beziehungen angezeigt werden müssen, z. B. Menüs, Kategorien, Organisationsstrukturen usw. In diesem Artikel werden wir ausführlich vorstellen
Eine Baumstruktur ist ein hierarchisches Datenmodell, das aus einem Wurzelknoten und seinen untergeordneten mehreren untergeordneten Knoten besteht. Jeder Kinderknoten kann auch einen eigenen Kinderknoten haben und so weiter. Baumstrukturen sind sehr geeignet, um hierarchische Beziehungen wie Unternehmensorganisationsstruktur, Produktklassifizierung usw. darzustellen.
Um eine flache Liste in eine Baumstruktur umzuwandeln, ist zunächst eine Datenliste mit Informationen zum Knoten und seinem übergeordneten Knoten erforderlich. Beispielsweise finden Sie Beispiele, die die Beziehung zwischen dem Knoten und dem übergeordneten Knoten enthalten:
// Beispieldaten
$list = [
['id' => 1, 'name' => 'Wurzelknoten', 'pid' => 0],
['id' => 2, 'name' => 'Kinderknoten1', 'pid' => 1],
['id' => 3, 'name' => 'Kinderknoten2', 'pid' => 1],
['id' => 4, 'name' => 'Kinderknoten1.1', 'pid' => 2],
['id' => 5, 'name' => 'Kinderknoten1.2', 'pid' => 2],
];
Als nächstes schreiben wir eine PHP -Funktion, die die Ebenendaten in eine Baumstruktur umwandelt. Die Kernlogik dieser Funktion besteht darin, eine hierarchische Beziehung herzustellen, indem die Daten mithilfe der Knoten -ID und der übergeordneten Knoten -ID durchquert werden:
function listToTree($list) {
$tree = [];
$references = [];
// Konfigurieren Sie Referenzen für jeden Knoten
foreach ($list as $element) {
$references[$element['id']] = $element;
$references[$element['id']]['children'] = [];
}
// Spannende Baumstruktur
foreach ($list as $element) {
if ($element['pid'] == 0) {
// Wurzelknoten
$tree[] = &$references[$element['id']];
} else {
// Kinderknoten
$references[$element['pid']]['children'][] = &$references[$element['id']];
}
}
return $tree;
}
// Aufrufen von Funktionen
$tree = listToTree($list);
print_r($tree);
Im obigen Code definieren wir eine Funktion namens ListTotree , die ein Ebenenarray mit Knotendaten als Parameter nimmt und eine Baumstruktur zurückgibt. Innerhalb der Funktion werden jeder Knoten und seine untergeordneten Knoten durch eine Schleife zugeordnet, und schließlich wird eine Baumstruktur konstruiert.
Verwenden Sie die Print_r -Funktion, um die generierte Baumstruktur einfach anzuzeigen. Sie können die Struktur nach tatsächlichen Anforderungen weiter verarbeiten, z. B. das Konvertieren in das JSON-Format oder das Anzeigen auf der Front-End-Seite.
In diesem Artikel wird im Detail erläutert, wie die Listendaten über PHP -Code in eine Baumstruktur umwandeln. Durch das Verständnis der grundlegenden Konzepte und Implementierungsmethoden von Baumstrukturen können Sie diese Technik problemlos beherrschen und Ihnen helfen, die Datenanzeige und -verwaltung auf verschiedenen Ebenen effizient zu betreiben. Das Beherrschen dieser Technologien kann nicht nur die Entwicklungseffizienz verbessern, sondern auch die Bequemlichkeit des Datenmanagements verbessern.
Ich hoffe, dieser Artikel hilft Ihnen. Wenn Sie Fragen haben, überlassen Sie bitte eine Nachricht im Kommentarbereich, um zu diskutieren.