從父子關係中建立層次樹結構
從父子關係中建構層次樹結構是程式設計中常見的任務。為了實現這一點,可以採用遞歸方法,有效地將資料組織成嵌套單元。
在 PHP 中,將一系列父子對轉換為分層樹需要兩個關鍵函數:解析和列印。解析函數系統地遍歷子父對以建構分層資料結構。接下來,列印函數將此結構轉換為一系列巢狀的 HTML 無序列表,每個列表項代表一個子項。
作為範例,請考慮以下父子對:
Child : Parent H : G F : G G : D E : D A : E B : C C : E D : NULL
為了解析這些數據,我們定義了parseTree 函數:
function parseTree($tree, $root = null) { $return = array(); foreach($tree as $child => $parent) { if($parent == $root) { unset($tree[$child]); $return[] = array( 'name' => $child, 'children' => parseTree($tree, $child) ); } } return empty($return) ? null : $return; }
接下來,我們定義printTree函數將解析後的層次結構轉換為HTML無序列表:
function printTree($tree) { if(!is_null($tree) && count($tree) > 0) { echo '<ul>'; foreach($tree as $node) { echo '<li>'.$node['name']; printTree($node['children']); echo '</li>'; } echo '</ul>'; } }
透過組合這兩個函數,我們可以成功地將子父對轉換為分層樹結構。
以上是如何在 PHP 中根據父子關係建立層次樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!