zoukankan      html  css  js  c++  java
  • 【转】PHP 无限级分类(递归)

    $arr = array(
        array('id'=>1,'name'=>'电脑','pid'=>0),
        array('id'=>2,'name'=>'手机','pid'=>0),
        array('id'=>3,'name'=>'笔记本','pid'=>1),
        array('id'=>4,'name'=>'台式机','pid'=>1),
        array('id'=>5,'name'=>'智能机','pid'=>2),
        array('id'=>6,'name'=>'功能机','pid'=>2),
        array('id'=>7,'name'=>'超级本','pid'=>3),
        array('id'=>8,'name'=>'游戏本','pid'=>3),
    );
    
    /**
     * @param $arr 数组
     * @param $id   id
     * @param $level  层级
     * @return array
     */
    function demo($arr,$id,$level)
    {
        $list =array();
        foreach ($arr as $k=>$v){
            if ($v['pid'] == $id){
                $v['level']=$level;
                $v['son'] = demo($arr,$v['id'],$level+1);
                $list[] = $v;
            }
        }
        return $list;
    }
    
    print_r(demo($arr,0,0));
    输出结果:
    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => 电脑
                [pid] => 0
                [level] => 0
                [son] => Array
                    (
                        [0] => Array
                            (
                                [id] => 3
                                [name] => 笔记本
                                [pid] => 1
                                [level] => 1
                                [son] => Array
                                    (
                                        [0] => Array
                                            (
                                                [id] => 7
                                                [name] => 超级本
                                                [pid] => 3
                                                [level] => 2
                                                [son] => Array
                                                    (
                                                    )
    
                                            )
    
                                        [1] => Array
                                            (
                                                [id] => 8
                                                [name] => 游戏本
                                                [pid] => 3
                                                [level] => 2
                                                [son] => Array
                                                    (
                                                    )
    
                                            )
    
                                    )
    
                            )
    
                        [1] => Array
                            (
                                [id] => 4
                                [name] => 台式机
                                [pid] => 1
                                [level] => 1
                                [son] => Array
                                    (
                                    )
    
                            )
    
                    )
    
            )
    
        [1] => Array
            (
                [id] => 2
                [name] => 手机
                [pid] => 0
                [level] => 0
                [son] => Array
                    (
                        [0] => Array
                            (
                                [id] => 5
                                [name] => 智能机
                                [pid] => 2
                                [level] => 1
                                [son] => Array
                                    (
                                    )
    
                            )
    
                        [1] => Array
                            (
                                [id] => 6
                                [name] => 功能机
                                [pid] => 2
                                [level] => 1
                                [son] => Array
                                    (
                                    )
    
                            )
    
                    )
    
            )
    
    )

      扫二维码,关注更多PHP资讯!

    qrcode_for_gh_eca2f6d7a005_258.jpg

  • 相关阅读:
    for循环中的作用域 闭包
    for,forEach,for in ,for of,$.each和$().each应用
    交换变量的值
    URL和URI的关系
    Delphi Idhttp.Get方法
    Delphi 时间转换异常处理(各Win系统时间显示格式不同)
    Delphi 接口统一方法
    Delphi 高级停靠(Dock)技术的实现[转载]
    delphi 客户端_动态装载插件DLL
    ADOQuery导出Excel超快(大量数据)!
  • 原文地址:https://www.cnblogs.com/zhangzhijian/p/11187443.html
Copyright © 2011-2022 走看看