使用遞歸函數回顯選單樹
要使用遞迴函數從資料庫表產生分層選單樹,請考慮下列方法:
問題:
您希望建立一個遞歸函數,從MySQL 資料庫中提取分層選單樹。
情況:
表格包含欄位:
預期HTML 輸出:
<li><a href="#"><p class="Tier0">Datori</p></a> <ul style="display: block"> <li><a href="#"><p class="Tier1">Cookies</p></a></li> <li><a href="#"><p class="Tier1">Events</p></a></li> <li><a href="#"><p class="Tier1">Forms</p></a></li> <li><a href="#"><p class="Tier1">Games</p></a></li> <li><a href="#"><p class="Tier1">Images</p></a> <ul> <li><a href="#"><p class="Tier2">CSS</p></a></li> <li><a href="#"><p class="Tier2">JavaScript</p></a></li> <li><a href="#"><p class="Tier2">JQuery</p></a></li> </ul> </li> <li><a href="#"><p class="Tier1">Navigations</p></a> <ul> <li><a href="#"><p class="Tier2">CSS</p></a></li> <li><a href="#"><p class="Tier2">JavaScript</p></a></li> <li><a href="#"><p class="Tier2">JQuery</p></a></li> </ul> </li> <li><a href="#"><p class="Tier1">Tabs</p></a></li> </ul> </li> <li><a href="#"><p class="Tier0">Washing Machines</p></a></li>
建議的PH🎜>
<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>
其他注意事項:
以上是如何建立遞歸 PHP 函數來從 MySQL 資料庫表產生分層選單樹?的詳細內容。更多資訊請關注PHP中文網其他相關文章!