php tree ul li 数组中的层次结构菜单

2023-12-08

我们从 mysqli 查询输出中得到这个数组:

$items = Array
(
    Array
    (
        'id' => 1,
        'title' => 'menu1',
        'parent_id' => 0
    ),
    Array
    (
        'id' => 2,
        'title' => 'submenu1-1',
        'parent_id' => 1
    ),
    Array
    (
        'id' => 3,
        'title' => 'submenu1-2',
        'parent_id' => 1
    ),
    Array
    (
        'id' => 4,
        'title' => 'menu2',
        'parent_id' => 0
    ),
    Array
    (
        'id' => 5,
        'title' => 'submenu2-1',
        'parent_id' => 4
    )
);

我们需要 php 的 html 输出:

<ul>
        <li><a>menu1</a>
             <ul>
                 <li><a>submenu1-1</a></li>
                 <li><a>submenu1-2</a></li>
             </ul>
        </li>
        <li><a>menu2</a>
             <ul>
                 <li><a>submenu2-1</a></li>
             </ul>
        </li>
</ul>

谁能帮我 ? 也许这很容易,但我已经尝试了一切但没有成功!


最后我找到了这样的答案:

function generateTreeMenu($datas, $parent = 0, $limit=0){
            if($limit > 1000) return ''; 
            $tree = '';
            $tree = '<ul>';
            for($i=0, $ni=count($datas); $i < $ni; $i++){
                if($datas[$i]['parent_id'] == $parent){
                    $tree .= '<li><a>';
                    $tree .= $datas[$i]['title'].'</a>';
                    $tree .= generatePageTree($datas, $datas[$i]['id'], $limit++);
                    $tree .= '</li>';
                }
            }
            $tree .= '</ul>';
            return $tree;
}

echo generateTreeMenu($items);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php tree ul li 数组中的层次结构菜单 的相关文章

  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 尝试使用 php 发送 POST 请求,无论我做什么,我都会收到“HTTP ERROR 500”

    为了发出 HTTP 请求 有人建议我尝试使用 PHP 并给了我一段代码 url https example com dashboard api data array to gt PHONE NUMBER from gt SENDER ID
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • 媒体的 Google Cloud Storage 签名网址

    我已经建立了一个视频网站 为用户提供 m3u8 和关联的 ts 文件 我不希望媒体文件免费可用 所以我所做的是 当用户在网站上时 在 mysql 中使用他们的 IP 和令牌创建一个会话 当他们请求特定媒体子域 mp4 domain com
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 有没有办法在 Eclipse 中生成“Lorem ipsum”?

    我正在寻找一种生成方法Lorem ipsum在 Eclipse 中为虚拟文本创建视图时 例如 在 Visual Studio 中 您只需输入即可完成lorem并按选项卡 在日食中有什么可以做到的吗 任何想法 在 Android Studio
  • mysql 连接表

    我有4张桌子 表 A 具有用户 user id username and name 具有令牌的表 B token id user id 每个用户有 10 个令牌条目 每个令牌仅分配给一个用户 一个用户拥有多个代币 10 表C即街机游戏 ar
  • 如何为单个字符着色并保持适当的间距/字距调整/对齐?

    我想使用 Graphics DrawString 使用单独的颜色绘制字符 问题是 每次调用 DrawString 时 我都必须知道相对于其他字符的位置 使用点或矩形 当考虑到在具有 StringFormat 的矩形中使用 DrawStrin
  • 内联 JavaScript 会阻塞 UI 线程吗?

    我读了这篇好文章外部脚本如何阻塞 UI 线程但我不清楚阻塞是否实际上是由于存在
  • 根据SDK版本加载类

    有什么方法可以根据手机运行的操作系统版本加载类吗 例如 我制作了一个需要 1 6 Android 的应用程序 有没有办法让我根据手机运行的操作系统加载一个类或另一个类 我特意询问这个联系人 数据库已从 1 6 更改为 2 0 旧版本不会在新
  • for in 循环内部如何工作 - Objective C - 基础

    我找到了这个答案 https stackoverflow com a 5163334 1364174 其中介绍了如何for in循环被实现 NSFastEnumerationState enumState 0 id objects MAX
  • 带查找的动态数组的行式文本连接

    这个问题与以下问题密切相关这个答案来自用户马克 菲茨帕特里克 My sheet image 我在 M3 和 AB3 同一列表 中有一个国家 地区代码标题的变量列表 以及在 A4 中作为行的唯一 提及 的变量列表 M4 和 AB4 中的公式计
  • AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“groupby”

    我有一个包含 3 列的数据框 我想通过执行以下操作来根据筷子长度对列进行分组 meansByCL df chopstick groupby Chopstick Length Food Pinching Efficiency mean res
  • 使用 IP 地址和 SNI 启动 https 连接

    我在用着WinHttpConnect为了在我的 Windows 应用程序和远程服务器之间建立 https 连接 但是 我的服务器不一定有 DNS 地址 因此通过设置建立连接pswzServerName到原始 IPV4 地址 WINHTTPA
  • 如何将单元中定义的组件添加到Delphi调色板?

    我有一个定义组件的 pa 单元 我怎样才能将它添加到调色板 我知道的唯一方法是将其包含在包中 有直接的方法吗 在一个包中 有一个单元有一个名为Register 大小写很重要 在该过程中 调用RegisterComponents在您想要显示在
  • 如何获取Qt中通过样式表设置的小部件的字体?

    我有 Qt 应用程序 应用了自定义样式表 以及一般的所有小部件 并在此样式表中包含自定义字体 但是当尝试获取某些小部件的字体时font 方法返回不同的字体 我想获得a的字体QWidget这是由样式表设置的 这font 方法总是返回全局系统字
  • 适用于 Xcode 6 的 iPhone 4 模拟器

    我需要模拟 iPhone 4 不是 iPhone 4S 我得到了 iPhone 的完整列表 但 4 不是其中之一 在谷歌上搜索了一个小时后 我抓狂了 我做错了什么 我也尝试过修改构建设置但无济于事 没有针对 iPhone 4 的选项 您认为
  • 将范围复制到虚拟范围

    是否可以将范围复制到虚拟范围 或者是否需要我将其随意粘贴到工作簿中的另一个范围中 dim x as range x copy of Range A1 A4 显然我通常使用以下代码 dim x as range set x Range A1
  • 未知服务错误 botocore

    我正在尝试使用最近的亚马逊转录服务 transcribe boto3 client transcribe 我收到以下错误 botocore exceptions UnknownServiceError Unknown service tra
  • 创建独立进程!

    我正在尝试从 C 中的服务创建一个进程 这个新进程是作为子进程创建的 我想创建一个独立的进程而不是子进程 我正在使用 CreateProcess 函数来实现相同的目的 由于我创建的新进程是一个子进程 当我尝试在服务级别杀死进程树时 它也会杀
  • CSS中的梯形div

    我想要内容为梯形的部分div但我不知道如何开始或实现我的目标的最佳方法是什么 我遇到过这个解决方案 但没有太多信息可供我理解CSS3 转换为梯形 HTML div class section p content here p div 这是创
  • 在固定大小的大正方形中创建动态等大小的小正方形网格

    我怎样才能在固定的大正方形内创建动态的等大小的正方形 尺寸应根据正方形的数量 这将是最通用的解决方案 使用CSSgrid根据子元素的总和 可计算列和行 JS解释 grid children length 计算以下孩子的数量grid div
  • 并发 hashmap 不需要同步 getter/setter 吗?

    如果我使用并发哈希图并且我有设置和获取值的方法 因为我使用并发哈希图 我需要使 getter 和 setter 同步吗 这是多余的吗 有一种设计更好吗 另外 没有同步的并发哈希图是否比具有同步 getter 和 setter 的哈希图更快
  • 全屏模式下 JDialog 不显示

    我有一个在全屏模式下运行的应用程序并且运行良好 现在我需要添加一个简单的 未修饰的对话框 但我遇到了麻烦 如果我运行应用程序最大化但不是全屏 对话框会按预期显示和运行 当我切换回全屏时 该对话框将不会显示 该对话框扩展了 JDialog 仅
  • php tree ul li 数组中的层次结构菜单

    我们从 mysqli 查询输出中得到这个数组 items Array Array id gt 1 title gt menu1 parent id gt 0 Array id gt 2 title gt submenu1 1 parent