建立一個遞歸函數來遍歷儲存在資料庫中的分層選單結構並將其輸出HTML 可能具有挑戰性。給定一個包含類別及其父類別的表格,任務是產生一個直觀地表示層次結構的選單樹。
為了解決這個問題,需要一個遞歸函數。這個想法是從根類別開始,找到它的子類別,然後遞歸地呼叫每個子類別的函數,從而建立 HTML 輸出。
這裡是PHP 函數的可能實作:
<code class="php">function recurse($categories, $parent = null, $level = 0) { $ret = '<ul>'; foreach($categories as $index => $category) { if($category['root'] == $parent) { $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>'; $ret .= $this->recurse($categories, $category['id'], $level+1); $ret .= '</li>'; } } return $ret . '</ul>'; }</code>
使用此函數:
初始實作可能會產生空的
<code class="php">function recurse($categories, $parent = null, $level = 0) { $ret = '<ul>'; foreach($categories as $index => $category) { if($category['root'] == $parent) { $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>'; $sub = $this->recurse($categories, $category['id'], $level+1); if($sub != '<ul></ul>') $ret .= $sub; $ret .= '</li>'; } } return $ret . '</ul>'; }</code>
此修改確保只有具有子級的類別才有
或者,您可以向每個類別新增子計數,並且僅包含
以上是如何在 PHP 中使用遞歸函數建立 Echo 選單樹?的詳細內容。更多資訊請關注PHP中文網其他相關文章!