php用数组返回无限分类的列表数据的代码

当我们需要生成一个无限分类的列表数据时,可以使用 PHP 的数组来进行返回,下面是生成无限分类列表数据的具体代码和步骤:

1.准备数据

首先,我们需要准备一个数组,包含分类列表数据的信息,如下所示:

$data = array(
    array('id' => 1, 'name' => '电子产品', 'parent_id' => 0),
    array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    array('id' => 4, 'name' => '华为手机', 'parent_id' => 2),
    array('id' => 5, 'name' => '小米手机', 'parent_id' => 2),
    array('id' => 6, 'name' => '戴尔电脑', 'parent_id' => 3),
    array('id' => 7, 'name' => '华硕电脑', 'parent_id' => 3),
    array('id' => 8, 'name' => '家用电器', 'parent_id' => 0),
    array('id' => 9, 'name' => '冰箱', 'parent_id' => 8),
    array('id' => 10, 'name' => '电视', 'parent_id' => 8),
    array('id' => 11, 'name' => '海信电视', 'parent_id' => 10),
    array('id' => 12, 'name' => '创维电视', 'parent_id' => 10)
);

2.编写递归函数

接下来,我们需要编写一个递归函数,用于将分类数据转换成树形结构,实现代码如下所示:

function buildTree($data, $parent_id = 0, $level = 0) {
    static $tree = array();
    foreach ($data as $item) {
        if ($item['parent_id'] == $parent_id) {
            $item['level'] = $level;
            $tree[] = $item;
            buildTree($data, $item['id'], $level + 1);
        }
    }
    return $tree;
}

3.生成无限分类列表数据

最后,我们可以调用 buildTree 函数来生成无限分类列表数据,具体代码如下所示:

$data = array(
    array('id' => 1, 'name' => '电子产品', 'parent_id' => 0),
    array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    array('id' => 4, 'name' => '华为手机', 'parent_id' => 2),
    array('id' => 5, 'name' => '小米手机', 'parent_id' => 2),
    array('id' => 6, 'name' => '戴尔电脑', 'parent_id' => 3),
    array('id' => 7, 'name' => '华硕电脑', 'parent_id' => 3),
    array('id' => 8, 'name' => '家用电器', 'parent_id' => 0),
    array('id' => 9, 'name' => '冰箱', 'parent_id' => 8),
    array('id' => 10, 'name' => '电视', 'parent_id' => 8),
    array('id' => 11, 'name' => '海信电视', 'parent_id' => 10),
    array('id' => 12, 'name' => '创维电视', 'parent_id' => 10)
);

$tree = buildTree($data);

echo '<ul>';
foreach ($tree as $item) {
    echo '<li>';
    echo str_repeat('- ', $item['level']) . $item['name'];
    echo '</li>';
}
echo '</ul>';

以上代码可以输出以下无限分类列表:

  • 电子产品
  • 手机
    • 华为手机
    • 小米手机
  • 笔记本电脑
    • 戴尔电脑
    • 华硕电脑
  • 家用电器
  • 冰箱
  • 电视
    • 海信电视
    • 创维电视

另外,我们还可以将上面的代码稍作修改,生成一个有层级关系的无限分类列表,具体代码如下所示:

function buildList($data, $parent_id = 0) {
    $html = '<ul>';
    foreach ($data as $item) {
        if ($item['parent_id'] == $parent_id) {
            $html .= '<li>';
            $html .= $item['name'];
            $html .= buildList($data, $item['id']);
            $html .= '</li>';
        }
    }
    $html .= '</ul>';
    return $html;
}

$data = array(
    array('id' => 1, 'name' => '电子产品', 'parent_id' => 0),
    array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    array('id' => 4, 'name' => '华为手机', 'parent_id' => 2),
    array('id' => 5, 'name' => '小米手机', 'parent_id' => 2),
    array('id' => 6, 'name' => '戴尔电脑', 'parent_id' => 3),
    array('id' => 7, 'name' => '华硕电脑', 'parent_id' => 3),
    array('id' => 8, 'name' => '家用电器', 'parent_id' => 0),
    array('id' => 9, 'name' => '冰箱', 'parent_id' => 8),
    array('id' => 10, 'name' => '电视', 'parent_id' => 8),
    array('id' => 11, 'name' => '海信电视', 'parent_id' => 10),
    array('id' => 12, 'name' => '创维电视', 'parent_id' => 10)
);

$html = buildList($data);
echo $html;

以上代码可以输出以下有层级关系的无限分类列表:

  • 电子产品
  • 手机
    • 华为手机
    • 小米手机
  • 笔记本电脑
    • 戴尔电脑
    • 华硕电脑
  • 家用电器
  • 冰箱
  • 电视
    • 海信电视
    • 创维电视

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php用数组返回无限分类的列表数据的代码 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 微信小程序 Windows2008 R2服务器配置TLS1.2方法

    微信小程序 Windows2008 R2服务器配置TLS1.2方法 说明 微信小程序从2021年6月1日起强制要求服务器只能使用TLS1.2及以上版本的加密协议进行通信,并禁用TLS1.0和TLS1.1。本文将详细讲解在Windows2008 R2服务器上如何配置TLS1.2的方法。 步骤 以下步骤将带你逐步完成TLS1.2的配置。 步骤1 – 确认服务器当…

    PHP 2023年5月23日
    00
  • laravel的数据表填充器使用详解

    下面是”laravel的数据表填充器使用详解”的完整攻略。 1. 什么是数据表填充器? 数据表填充器(Database Seeder) 是 Laravel 框架中常用的一种功能,可以帮我们简化数据库的填充过程。使用数据表填充器,我们可以快速而又方便地为数据库创建初始数据,节省我们手动插入数据的时间。 2. 如何使用数据表填充器? 在 Laravel 框架中,…

    PHP 2023年5月26日
    00
  • php文件上传简单实现方法

    下面是关于PHP文件上传简单实现方法的攻略,包含过程细节和两个具体示例: 1. 使用HTML表单创建上传文件控件 在HTML表单中加入文件上传控件,这样可以让用户选取需要上传的文件。表单中主要包含以下内容: <form action="upload.php" method="post" enctype=&quot…

    PHP 2023年5月26日
    00
  • PHP 实现 WebSocket 协议原理与应用详解

    PHP 实现 WebSocket 协议原理与应用详解 什么是 WebSocket 协议 WebSocket 协议是一种基于 TCP 协议的网络协议,它属于轻量级协议,适用于服务器与客户端之间长时间连接通信。相对于 HTTP 协议每次请求都进行连接和断开,WebSocket 协议可以实现一个长连接,从而避免了多次连接的开销,并且可以在服务器端推送数据给客户端,…

    PHP 2023年5月26日
    00
  • Laravel框架学习笔记(一)环境搭建

    Laravel框架学习笔记(一)环境搭建 Laravel是一种广泛使用的PHP Web应用程序框架,具有优雅的语法和高度可读性。在开始使用Laravel之前,需要准备好一些环境: 1.环境要求 PHP >= 7.2.5 OpenSSL PHP 扩展 PDO PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展 XML PHP …

    PHP 2023年5月23日
    00
  • 详解PHP正则表达式替换实现(PHP preg_replace,PHP preg_replace)

    PHP中的preg_replace函数是一个强大的正则表达式替换工具,可以用于替换字符串、过滤不需要的内容等。下面将详细讲解PHP正则表达式替换实现的完整攻略。 步骤一:准备待匹配的字符串和正则表达式 在使用preg_replace函数之前,需要准备待匹配的字符串和正则表达式。字符串可以是一个变量或者常量,正则表达式则是一个字符串,用来描述所需匹配的模式。例…

    PHP 2023年5月26日
    00
  • php下批量挂马和批量清马代码

    为了防范网络黑客的攻击,网站管理员需要了解网站被挂马后的处理方式。一般在PHP语言下,网站被挂马的原因是服务端的文件有漏洞,或者被管理员账户密码泄露,网站的代码造成的后果就是在用户请求页面时,程序会在页面HTML代码中嵌入一个恶意脚本或链接,使得用户在访问页面时会自动执行恶意脚本或链接,从而感染用户的电脑或手机。下面我们将为您介绍如何通过PHP代码来批量挂马…

    PHP 2023年5月23日
    00
  • php IP转换整形(ip2long)的详解

    下面是关于“php IP转换整形(ip2long)的详解”的完整攻略。 标题 PHP中IP转换整形函数ip2long的使用方法详解 简介 在开发中,我们有时需要将IP地址转换为整形,或是将整形转换为IP地址。使用PHP中的ip2long函数可以很轻松地完成这个转换过程。本文将对php中的IP转换整形函数ip2long进行详细的讲解,并提供两个示例说明,以便读…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部