数组 生成无限极分类树

/**
 * 生成无限极分类树
 * @param $arr '数据数组结构'
 * @param $key_id '主键id的key'
 * @param $parent_id '区分层级关系的 Key名'
 * @return array
 */
function make_tree($arr,$key_id,$parent_id)
{
    $refer = array();
    $tree  = array();

    foreach($arr as $k => $v){
        $refer[$v[$key_id]] = & $arr[$k]; //创建主键的数组引用
    }

    foreach($arr as $k => $v){
        $pid = $v[$parent_id];  //获取当前分类的父级id
        if($pid == 0){
            $arr[$k]['parent_id'] = (string)$arr[$k]['parent_id'];
            $arr[$k]['children'] = [];
            $tree[] = & $arr[$k];  //顶级栏目

        }else{
            if(isset($refer[$pid])){
                $arr[$k]['parent_id'] = (string)$arr[$k]['parent_id'];
                $refer[$pid]['children'][] = & $arr[$k]; //如果存在父级栏目,则添加进父级栏目的子栏目数组中
            }
        }
    }
    return $tree;
}

欢迎评论加好友 VX qubojie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值