创建一个递归函数来遍历存储在数据库中的分层菜单结构并将其输出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中文网其他相关文章!