加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP递归遍历多维数组实现无限分类的方法

发布时间:2022-07-25 09:53:38 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP递归遍历多维数组实现无限分类的方法。分享给大家供大家参考,具体如下: ?php //$data[]=array(id=1,parentid=0,name=中国,img=52091199); $data[]=array(id=1,parentid=0,name=中国); $data[]=array(id=2,parentid=0,name=美国); $data[]
  本文实例讲述了PHP递归遍历多维数组实现无限分类的方法。分享给大家供大家参考,具体如下:
 
  <?php
   
     //$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国','img'=>'52091199');
   
     $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国');
   
     $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国');
   
     $data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国');
   
     $data[]=array('id'=>4,'parentid'=>1,'name'=>'北京');
   
     $data[]=array('id'=>5,'parentid'=>1,'name'=>'上海');
   
     $data[]=array('id'=>6,'parentid'=>1,'name'=>'广西');
   
     $data[]=array('id'=>7,'parentid'=>6,'name'=>'桂林');
   
     $data[]=array('id'=>8,'parentid'=>6,'name'=>'南宁');
   
     $data[]=array('id'=>9,'parentid'=>6,'name'=>'柳州');
   
     $data[]=array('id'=>10,'parentid'=>2,'name'=>'纽约');
   
     $data[]=array('id'=>11,'parentid'=>2,'name'=>'华盛顿');
   
     $data[]=array('id'=>12,'parentid'=>3,'name'=>'首尔');
   
     $tree=build_tree($data,0);
   
     //echo memory_get_usage();
   
     print_r($tree);
   
   function findChild(&$arr,$id){
   
    $childs=array();
   
    foreach ($arr as $k => $v){
   
     if($v['parentid']== $id){
   
      $childs[]=$v;
   
     }
   
    }
   
    return $childs;
   
   }
   
   function build_tree($rows,$root_id){
   
    $childs=findChild($rows,$root_id);
   
    if(emptyempty($childs)){
   
     return null;
   
    }
   
   foreach ($childs as $k => $v){
   
    $rescurTree=build_tree($rows,$v['id']);
  //phpfensi.com
    if( null != $rescurTree){
   
    $childs[$k]['childs']=$rescurTree;
   
    }
   
   }
   
    return $childs;
   
   }
   
  ?>
  运行结果:
 
  Array
   
  (
   
   [0] => Array
   
    (
   
     [id] => 1
   
     [parentid] => 0
   
     [name] => 中国
   
     [childs] => Array
   
      (
   
       [0] => Array
   
        (
   
         [id] => 4
   
         [parentid] => 1
   
         [name] => 北京
   
        )
   
       [1] => Array
   
        (
   
         [id] => 5
   
         [parentid] => 1
   
         [name] => 上海
   
        )
   
       [2] => Array
   
        (
   
         [id] => 6
   
         [parentid] => 1
   
         [name] => 广西
   
         [childs] => Array
   
          (
   
           [0] => Array
   
            (
   
             [id] => 7
   
             [parentid] => 6
   
             [name] => 桂林
   
            )
   
           [1] => Array
   
            (
   
             [id] => 8
   
             [parentid] => 6
   
             [name] => 南宁
   
            )
   
           [2] => Array
   
            (
   
             [id] => 9
   
             [parentid] => 6
   
             [name] => 柳州
   
            )
   
          )
   
        )
   
      )
   
    )
   
   [1] => Array
   
    (
   
     [id] => 2
   
     [parentid] => 0
   
     [name] => 美国
   
     [childs] => Array
   
      (
   
       [0] => Array
   
        (
   
         [id] => 10
   
         [parentid] => 2
   
         [name] => 纽约
   
        )
   
       [1] => Array
   
        (
   
         [id] => 11
   
         [parentid] => 2
   
         [name] => 华盛顿
   
        )
   
      )
   
    )
   
   [2] => Array
   
    (
   
     [id] => 3
   
     [parentid] => 0
   
     [name] => 韩国
   
     [childs] => Array
   
      (
   
       [0] => Array
   
        (
   
         [id] => 12
   
         [parentid] => 3
   
         [name] => 首尔
   
        )
   
      )
   
    )
   
  ) 

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读