php递归怎么实现无限极分类

以下是一个使用PHP递归实现无限极分类的示例:function buildTree($arr, $parentId = 0) {$tree = array();foreach ($arr as $item) {if ($item['parent_id'] == $parentId) {$children = buildTree($arr, $item['id&#x2

以下是一个使用PHP递归实现无限极分类的示例:

function buildTree($arr, $parentId = 0) {
    $tree = array();
    
    foreach ($arr as $item) {
        if ($item['parent_id'] == $parentId) {
            $children = buildTree($arr, $item['id']);
            if ($children) {
                $item['children'] = $children;
            }
            $tree[] = $item;
        }
    }
    
    return $tree;
}

// 示例数据
$data = array(
    array('id' => 1, 'name' => 'Category 1', 'parent_id' => 0),
    array('id' => 2, 'name' => 'Category 1.1', 'parent_id' => 1),
    array('id' => 3, 'name' => 'Category 1.2', 'parent_id' => 1),
    array('id' => 4, 'name' => 'Category 1.2.1', 'parent_id' => 3),
    array('id' => 5, 'name' => 'Category 2', 'parent_id' => 0),
    array('id' => 6, 'name' => 'Category 2.1', 'parent_id' => 5),
    array('id' => 7, 'name' => 'Category 2.1.1', 'parent_id' => 6),
);

$tree = buildTree($data);
var_dump($tree);

在这个示例中,buildTree 函数接收一个包含分类数据的数组和一个父分类的ID作为参数。它会遍历数组中的每个分类,如果发现某个分类的 parent_id 等于给定的父分类ID,则递归地将该分类添加到其父分类的 children 属性中,并将其加入到返回的树中。

最后,通过调用 buildTree 函数并传入示例数据,我们可以得到一个无限级分类的树形结构。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/940996.html

(0)
派派
上一篇 2024-03-18
下一篇 2024-03-18

相关推荐

  • ubuntu中nginx安装的步骤是什么

    安装Nginx在Ubuntu上通常需要以下步骤:更新系统软件包列表:sudo apt update安装Nginx:sudo apt install nginx启动Nginx服务:sudo systemctl start nginx验证Nginx是否成功启动:sudo systemctl status nginx配置防火墙允许HTTP和HTTPS流量(如果有需要):sudo ufw allow ‘N

    2024-03-21
    0
  • 如何查宽带是否到期(怎样查宽带有没有到期)

    如何查宽带是否到期,怎样查宽带有没有到期内容导航:如何查询联通宽带网是否到期如何查询家里宽带到期时间怎么查宽带是否欠费,什么时候到期铁通怎么查宽带到期时一、如何查询联通宽带网是否到期可通过如下方式查询宽带到期时间:1、查询办理时的业务受理单,上面有明确说明安装宽带的生效时间及宽带到期时间;2、通过拨打联通客服热

    2022-04-26
    0
  • php中array_intersect的作用是什么

    在PHP中,array_intersect函数用于比较两个或多个数组的值,并返回交集(即在所有数组中都存在的值)。函数语法为:array_intersect(array1, array2, …)参数说明:array1, array2, …:要比较的数组,可以是两个或多个。返回值:返回一个数组,包含了所有在每个参数数组中都存在的值。键名保持不变。

    2024-01-25
    0
  • Scala尾递归优化是怎么工作的

    Scala尾递归优化是通过将递归调用转换为循环来减少内存消耗和提高性能的一种优化技术。在Scala中,尾递归是指递归函数的最后一个操作是对自身的调用。当一个函数是尾递归的时候,编译器会对其进行优化,将其转换为一个循环,这样就不会在每次递归调用时创建一个新的栈帧,从而避免了栈溢出的风险。具体来说,编译器会将尾递归函数的递归调用优化为一个类似下面的循环结构:@tailrecdef factor

    2024-04-11
    0
  • 幻兽帕鲁词条提纯与保留教程

    幻兽帕鲁是一款非常受欢迎的游戏中的角色,提炼和保留其词条是一个技术活,以下是一个简易的教程:找出幻兽帕鲁的关键词:幻兽帕鲁的特点,能力,故事背景等等,这些是其词条的核心内容。去除冗余信息:幻兽帕鲁的词条应该尽量精简,去除一些不必要的描述和废话。确保准确性:在编写幻兽帕鲁的词条时,要确保所提供的信息是准确的,可以参考游戏官方资料或可靠的来源。保留受欢迎的元素:幻兽帕鲁的词条应该保留一些受欢迎的元素,

    2024-01-30
    0
  • 如何看一个公司的好坏(怎样判断公司的好坏)

    如何看一个公司的好坏,怎样判断公司的好坏内容导航:怎么看一个公司好坏我入职一周多,公司没有五险一金,工作是网销,工资是手机转账怎么看一家公司好坏如何判断公司的好与坏看一个上市公司的业绩好坏,最主要看哪些方面一、怎么看一个公司好坏我入

    2022-04-23
    0

发表回复

登录后才能评论