從資料庫結果遞歸建立多維數組
從平面資料庫結果擷取分層資料結構,例如頁面和類別選單,可以使用遞歸函數。此函數將獲取原始數組並根據父子關係將其組織為巢狀數組。
函數:
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; }
工作原理:
用法範例:
使用此方法將範例資料庫結果轉換為多維數組函數:
$tree = buildTree($rows);
其中$rows 是資料庫結果的原始數組。
輸出:
產生的分層數組將類似於所需的輸出:
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 ( ) ) ) ) )
以上是如何從平面資料庫結果遞歸建構多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!