首页 > 数据库 > mysql教程 > 如何创建递归 PHP 函数来从 MySQL 数据库表生成分层菜单树?

如何创建递归 PHP 函数来从 MySQL 数据库表生成分层菜单树?

Mary-Kate Olsen
发布: 2024-10-29 00:28:02
原创
944 人浏览过

How can I create a recursive PHP function to generate a hierarchical menu tree from a MySQL database table?

使用递归函数回显菜单树

要使用递归函数从数据库表生成分层菜单树,请考虑以下方法:

问题:

您希望创建一个递归函数,从 MySQL 数据库中提取分层菜单树。

情况:

该表包含列:

  • id
  • root(父类别的 ID,或根类别为 null)
  • name

预期 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>
登录后复制

建议的 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>
登录后复制

用法:

  1. 将类别列表提取到多维数组中。
  2. 使用类别数组调用递归函数,输出将是所需的 HTML 菜单树。

其他注意事项:

  • 在附加 UL 标签之前检查子计数以防止空 UL 标签。
  • 考虑使用数据库列存储子计数以提高效率。

以上是如何创建递归 PHP 函数来从 MySQL 数据库表生成分层菜单树?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板