在PHP 中從平面數組建立樹
使用分層資料結構時的一個常見任務是將平面數組轉換為樹狀結構。這可以透過識別父子關係並相應地嵌套元素來完成。
解決此問題的一種方法是迭代數組並檢查每個元素的parent_id 值。如果元素的parent_id 為零,則將其視為根級別項。對於其他元素,它們的parent_id可用於確定它們在樹中的層次結構。
為了保留原始數組,建議在將元素新增至樹時建立元素的副本。這可以使用 array_values() 函數來實作。
這是一個範例實作:
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; }
為了防止產生的樹中出現重複元素,至關重要的是從原始陣列。這可以透過在迴圈中加入一行程式碼來完成:
unset($elements[$element['id']]);
使用這個修改過的函數,可以將平面數組轉換為分層樹結構。結果將是一個數組,每個父元素下都有嵌套的子元素。
以上是如何在 PHP 中從平面數組建立樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!