Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membina Struktur Pokok dengan Cekap daripada Tatasusunan Rata dalam PHP?
Bina Pokok daripada Tatasusunan Rata dalam PHP
Dalam PHP, ia boleh mencabar untuk membina struktur data pokok daripada tatasusunan rata . Walau bagaimanapun, tugasan ini boleh dipermudahkan dengan menggunakan rekursi dan pemahaman tentang hubungan ibu bapa-anak dalam tatasusunan rata.
Memandangkan tatasusunan rata di mana setiap elemen mempunyai 'id' dan 'parent_id', objektif adalah untuk menukarnya menjadi pokok hierarki. Setiap elemen dalam pokok yang terhasil harus mempunyai sifat 'kanak-kanak' jika ia mempunyai elemen kanak-kanak.
Penyelesaian
Kod yang disediakan cuba mencipta pokok secara rekursif, tetapi ia gagal mengalih keluar elemen selepas menambahkannya pada cawangan, menyebabkan berbilang salinan elemen yang sama. Untuk menyelesaikan isu ini, kita perlu mengalih keluar elemen daripada tatasusunan rata selepas menambahkannya pada cawangan.
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['id']] = $element; unset($elements[$element['id']]); } } return $branch; }
Penjelasan
The tatasusunan yang terhasil akan menjadi pepohon hierarki dengan setiap nod mengandungi anak-anaknya sebagai tatasusunan bersarang, memberikan gambaran yang jelas tentang perhubungan induk-anak dalam tatasusunan rata yang asal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Struktur Pokok dengan Cekap daripada Tatasusunan Rata dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!