Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie ein PHP-Array in ein Baumarray

So konvertieren Sie ein PHP-Array in ein Baumarray

zbt
Freigeben: 2023-08-04 17:30:48
Original
1341 Leute haben es durchsucht

So konvertieren Sie ein PHP-Array in ein Baumarray: 1. Verstehen Sie die Struktur und das Konzept des Baumarrays. In einem Baumarray hat jedes Element einen eindeutigen Bezeichner und einen Bezeichner des übergeordneten Elements. 2. Bereiten Sie ein Beispielarray vor und erstellen Sie ein normales Assoziativ Array, das einige Elemente und ihre übergeordneten Elementbezeichner enthält; 3. Erstellen Sie eine Konvertierungsfunktion, die eine Funktion zum Konvertieren des normalen Arrays in ein Baumarray erstellt. 4. Rufen Sie die Konvertierungsfunktion auf und geben Sie einfach das Ergebnis aus.

So konvertieren Sie ein PHP-Array in ein Baumarray

Die Betriebsumgebung dieses Tutorials: Windows10-System, PHP8.1.3-Version, DELL G3-Computer.

In PHP ist Array eine sehr verbreitete und praktische Datenstruktur. Manchmal müssen wir gewöhnliche Arrays in Baumarrays umwandeln, um Daten bequemer zu organisieren und anzuzeigen. In diesem Artikel wird erläutert, wie Sie ein PHP-Array in ein Baumarray konvertieren.

1. Verstehen Sie die Struktur und das Konzept des Baumarrays

In einem Baumarray hat jedes Element eine eindeutige Kennung und eine Kennung des übergeordneten Elements. Der Bezeichner des übergeordneten Elements kann mit dem Bezeichner des untergeordneten Elements abgeglichen werden, um die hierarchische Beziehung zwischen Elementen zu bestimmen. Die Struktur eines Baumarrays ähnelt einer Baumstruktur, bei der das oberste Element als Wurzelelement bezeichnet wird und die untergeordneten Elemente Blattknoten oder andere Zweigknoten sein können.

2. Bereiten Sie ein Beispielarray vor

Als Beispiel erstellen wir ein normales assoziatives Array, das einige Elemente und ihre übergeordneten Elementbezeichner enthält:

$data = array(
array('id' => 1, 'name' => '项目1', 'parent_id' => 0),
array('id' => 2, 'name' => '项目1.1', 'parent_id' => 1),
array('id' => 3, 'name' => '项目1.2', 'parent_id' => 1),
array('id' => 4, 'name' => '项目1.1.1', 'parent_id' => 2),
array('id' => 5, 'name' => '项目2', 'parent_id' => 0),
array('id' => 6, 'name' => '项目2.1', 'parent_id' => 5),
array('id' => 7, 'name' => '项目2.2', 'parent_id' => 5),
);
Nach dem Login kopieren

Das obige Array enthält einige Elemente, wobei das Element deren übergeordnete Elementbezeichner ist ist 0 ist das Wurzelelement.

3. Erstellen Sie eine Konvertierungsfunktion

Als nächstes erstellen wir eine Funktion zum Konvertieren eines gewöhnlichen Arrays in ein Baumarray. Zuerst müssen wir eine rekursive Funktion definieren, um das Array zu durchlaufen und den Baum zu erstellen. Die Funktion erhält zwei Parameter: das Eingabearray und die Kennung des übergeordneten Elements.

function buildTree(array $data, $parentId = 0) {
$tree = array();
foreach ($data as $row) {
if ($row['parent_id'] == $parentId) {
$children = buildTree($data, $row['id']);
if ($children) {
$row['children'] = $children;
}
$tree[] = $row;
}
}
return $tree;
}
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst ein leeres Array $tree und verwenden dann eine foreach-Schleife, um das Eingabearray $data zu durchlaufen. Wenn die übergeordnete Elementkennung des Elements mit der übergebenen übergeordneten Elementkennung übereinstimmt, wird ein untergeordnetes Array mit dem Namen $children erstellt und die Funktion buildTree() wird rekursiv aufgerufen, um die untergeordneten Elemente zu $children hinzuzufügen. Wenn $children kein leeres Array ist, hängen Sie es an den „children“-Schlüssel der aktuellen Zeile an. Fügen Sie abschließend die aktuelle Zeile zum $tree-Array hinzu.

4. Rufen Sie die Konvertierungsfunktion auf und geben Sie das Ergebnis aus

Als nächstes rufen wir einfach die Funktion buildTree() auf und übergeben das Beispielarray als Parameter. Anschließend können wir die Ergebnisse mit der Funktion print_r() oder der Funktion var_dump() ausdrucken, um zu überprüfen, ob die Konvertierung erfolgreich war.

$treeData = buildTree($data);
print_r($treeData);
Nach dem Login kopieren

Führen Sie den obigen Code aus und Sie sehen die Ausgabe des Baum-Arrays:

Array
(
[0] => Array
(
[id] => 1
[name] => 项目1
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 2
[name] => 项目1.1
[parent_id] => 1
[children] => Array
(
[0] => Array
(
[id] => 4
[name] => 项目1.1.1
[parent_id] => 2
)
)
)
[1] => Array
(
[id] => 3
[name] => 项目1.2
[parent_id] => 1
)
)
)
[1] => Array
(
[id] => 5
[name] => 项目2
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 6
[name] => 项目2.1
[parent_id] => 5
)
[1] => Array
(
[id] => 7
[name] => 项目2.2
[parent_id] => 5
)
)
)
)
Nach dem Login kopieren

Wie Sie sehen können, haben wir das gewöhnliche Array erfolgreich in ein Baum-Array konvertiert.

Zusammenfassung

In diesem Artikel wird erklärt, wie man ein PHP-Array in ein Baumarray umwandelt. Wenn Sie die Struktur und Konzepte von Baumarrays verstehen, erstellen Sie eine rekursive Funktion zum Erstellen des Baums und rufen Sie die Funktion auf, um das Array zu transformieren. Auf diese Weise können Sie Ihre Daten einfach organisieren und anzeigen

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein PHP-Array in ein Baumarray. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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