Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membina Struktur Pokok Hierarki daripada Tatasusunan Rata dalam PHP?
Membina Struktur Pokok daripada Susunan Rata dalam PHP
Masalah:
Anda ada tatasusunan rata yang terdiri daripada elemen dengan medan 'id' dan 'parent_id', di mana setiap elemen mungkin mempunyai paling banyak satu induk dan sifar atau lebih ramai kanak-kanak. Apabila 'parent_id' ialah 0, elemen tersebut ialah item peringkat akar. Matlamatnya adalah untuk menyusun semula tatasusunan rata ini menjadi pokok hierarki dengan perhubungan anak-ibubapa.
Penyelesaian:
Fungsi yang disediakan, buildTree(), melaksanakan tugas ini dengan berkesan dengan mengulangi tatasusunan input dan membina struktur pokok secara rekursif. Setiap elemen dalam pepohon output mengandungi ID, ID induk dan tatasusunan elemen anak.
Pelaksanaan:
function buildTree(array &$elements, $parentId = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; unset($elements[$element['id']]); } } return $branch; }
'Nyahset' Panggilan:
Dalam kod di atas, panggilan unset() adalah penting untuk mengekalkan struktur hierarki. Ia mengalih keluar elemen yang diproses daripada tatasusunan input asal, memastikan elemen tidak diduplikasi dalam pepohon.
Contoh:
Pertimbangkan tatasusunan input yang disediakan:
[_319_] => [...], [_320_] => [...], [_321_] => [...], [_322_] => [...], [_323_] => [...], [_324_] => [...], [_325_] => [...]
Selepas diproses, pokok keluaran mengekalkan induk-anak perhubungan:
[_319_] => [...], [_320_] => [ 'id' => '_320_', 'parent_id' => 0, 'children' => [ [_321_] => [...], [_325_] => [...] ] ], [_323_] => [ 'id' => '_323_', 'parent_id' => 0, 'children' => [ [_324_] => [...] ] ]
Oleh itu, fungsi buildTree() membolehkan anda mengubah tatasusunan rata elemen dengan perhubungan induk-anak menjadi pepohon hierarki berstruktur dalam PHP.
Atas ialah kandungan terperinci Bagaimana untuk Membina Struktur Pokok Hierarki daripada Tatasusunan Rata dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!