zoukankan      html  css  js  c++  java
  • php处理无限极分类数据的两种方式

    开发过程中,经常会遇到处理无限分类数据,这里就介绍一下处理无限分类数据的两种方式,有不对的地方,还望多多指正。

    //测试数据
    $array=array(
        ['id'=>1,'parent_id'=>0,'name'=>1],
        ['id'=>2,'parent_id'=>0,'name'=>2],
        ['id'=>3,'parent_id'=>1,'name'=>3],
        ['id'=>4,'parent_id'=>1,'name'=>4],
        ['id'=>5,'parent_id'=>3,'name'=>5],
        ['id'=>6,'parent_id'=>3,'name'=>6]
    );
    //递归方式
    function recursion($array,$parent_id=0){
        $new=[];
        foreach($array as $k=>$v){
            if($v['parent_id']==$parent_id){
               $v['child']=recursion($array,$v['id']);
                if (!$v['child']) {
                    unset($v['child']);
                }
                $new[] = $v;
            }
        }
        return $new;
    }
    
    //引用
    function quote($array){
        $items=array();
        foreach($array as $k=>$v){
           $items[$v['id']]=$v;
        }
        $tree = array();
        foreach($items as $item){
            if(isset($items[$item['parent_id']])){
                $items[$item['parent_id']]['son'][] = &$items[$item['id']];
            }else{
                $tree[] = &$items[$item['id']];
            }
        }
        return $tree;
    }
  • 相关阅读:
    Consul注销实例
    sql优化基础篇
    linux下执行java类(运行java定时器)
    ExecutorService 的理解与使用
    精度计算的方法
    内部类详解
    接口的作用
    面向对象之继承和组合浅谈
    构造器前篇
    教师编制考试数据分析
  • 原文地址:https://www.cnblogs.com/yqzc/p/12345293.html
Copyright © 2011-2022 走看看