Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von PHP-Array-Gruppierungsfunktionen beim Erstellen hierarchischer Strukturen

Verwendung von PHP-Array-Gruppierungsfunktionen beim Erstellen hierarchischer Strukturen

WBOY
WBOYOriginal
2024-05-01 10:06:02633Durchsuche

PHP-Array-Gruppierungsfunktionen können verwendet werden, um hierarchische Strukturen zu erstellen, indem Array-Elemente nach angegebenen Schlüsseln gruppiert werden, wodurch Arrays mit mehreren Verschachtelungsebenen generiert werden. Das Codebeispiel verwendet array_group_by() zum Gruppieren von Daten und konvertiert sie dann mithilfe der rekursiven Funktion createHierarchy() in eine Hierarchie. Diese Funktion durchläuft die gruppierten Ergebnisse, erstellt Unterebenen basierend auf parent_id und gibt letztendlich ein verschachteltes Array mit einer schönen hierarchischen Struktur zurück.

PHP 数组分组函数在创建层级结构中的使用

Anwendung der PHP-Array-Gruppierungsfunktion beim Erstellen einer hierarchischen Struktur

Die Array-Gruppierungsfunktion ist sehr nützlich im Umgang mit Szenarien, in denen die Datenhierarchie beibehalten werden muss. In PHP kann die Funktion array_group_by verschachtelte Arrays mit mehreren Ebenen erstellen, indem Elemente in einem Array basierend auf einem angegebenen Schlüssel gruppiert werden. array_group_by 函数可以将数组中的元素根据指定键进行分组,从而创建具有多个级别的嵌套数组。

代码示例

<?php

// 有一个包含 id 和 parent_id 的表数据
$tableData = [
    ['id' => 1, 'parent_id' => null],
    ['id' => 2, 'parent_id' => 1],
    ['id' => 3, 'parent_id' => 2],
    ['id' => 4, 'parent_id' => 1],
    ['id' => 5, 'parent_id' => 4],
];

// 根据 parent_id 对表数据进行分组
$groupedData = array_group_by($tableData, 'parent_id');

// 递归函数用于将分组结果转换为层级结构
function createHierarchy($data, $parentId = null) {
    $result = [];
    foreach ($data as $id => $values) {
        if ($id == $parentId) {
            foreach ($values as $value) {
                $result[] = [
                    'id' => $value['id'],
                    'value' => $value['value'],
                    'children' => createHierarchy($data, $value['id']),
                ];
            }
            return $result;
        }
    }
}

// 将分组数据转换为层级结构
$hierarchy = createHierarchy($groupedData, null);

// 打印层级结构
print_r($hierarchy);

输出结果

Array
(
    [0] => Array
        (
            [id] => 1
            [value] => 1
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [value] => 2
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 3
                                            [value] => 3
                                            [children] => Array
                                                (
                                                )
                                        )
                                )
                        )
                    [1] => Array
                        (
                            [id] => 4
                            [value] => 4
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 5
                                            [value] => 5
                                            [children] => Array
                                                (
                                                )
                                        )
                                )
                        )
                )
        )
)

在这个示例中,createHierarchy

🎜Codebeispiel🎜🎜rrreee🎜🎜Ausgabeergebnis🎜🎜rrreee🎜In diesem Beispiel verwendet die Funktion createHierarchy einen rekursiven Algorithmus, um die gruppierten Daten zu durchlaufen und untergeordnete Hierarchien basierend auf parent_id zu erstellen. Letztendlich wird ein verschachteltes PHP-Array mit einer schönen hierarchischen Struktur zurückgegeben. 🎜

Das obige ist der detaillierte Inhalt vonVerwendung von PHP-Array-Gruppierungsfunktionen beim Erstellen hierarchischer Strukturen. 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