Membina Tatasusunan Berbilang Dimensi daripada Keputusan Pangkalan Data Secara Rekursif
Untuk mendapatkan semula struktur data hierarki, seperti menu halaman dan kategori, daripada hasil pangkalan data yang rata , fungsi rekursif boleh digunakan. Fungsi ini akan mengambil tatasusunan asal dan menyusunnya menjadi tatasusunan bersarang berdasarkan perhubungan ibu bapa-anak.
Fungsi:
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; } } return $branch; }
Cara Ia Berfungsi :
Contoh Penggunaan:
Untuk menukar hasil pangkalan data contoh kepada tatasusunan berbilang dimensi menggunakan ini fungsi:
$tree = buildTree($rows);
Di mana $rows ialah tatasusunan asal hasil pangkalan data.
Output:
Tatasusunan hierarki yang terhasil akan menyerupai yang diingini keluaran:
Array ( [0] => Array ( [id] => 1 [parent_id] => 0 [title] => Parent Page [children] => Array ( [0] => Array ( [id] => 2 [parent_id] => 1 [title] => Sub Page [children] => Array ( [0] => Array ( [id] => 3 [parent_id] => 1 [title] => Sub Sub Page ) ) ) ) [children] => Array ( [0] => Array ( [id] => 4 [parent_id] => 0 [title] => Another Parent Page [children] => Array ( ) ) ) ) )
Atas ialah kandungan terperinci Bagaimana untuk Membina Susunan Berbilang Dimensi secara Rekursif daripada Hasil Pangkalan Data Rata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!