PHP不用递归实现无限极分类

适用于 idpidname 的表结构。

原理 php 引用。

直接上代码:

public  function getTree($arr)
{
    $items = [];
    foreach ($arr as $v)
    {
      $items[ $v['id'] ] = $v;
    }

    $tree = [];
    foreach ($items as $item)
    {

      if( isset($items[$item['pid']]) ){

        $items[ $item['pid'] ]['children'][] = &$items[$item['id']];

      }else{

        $tree[] = &$items[$item['id']];

      }

    }

    return $tree;
}

数据格式:

Array
(
    [0] => Array
        (
            [id] => 114
            [name] => 一级分类
            [pid] => 0
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 125
                            [name] => 二级分类
                            [pid] => 114
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 171
                                            [name] => 三级分类
                                            [pid] => 125
                                        )
                                )
                        )
                    [1] => Array
                        (
                            [id] => 126
                            [name] => 二级分类
                            [pid] => 114
                        )
                )

        )

    [1] => Array
    (
        ...省略
    )

    ...省略
)

网赚项目:http://www.xvenyun.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值