当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP递归遍历多维数组实现无限分类的方法

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

快乐大本营快乐男声,超能陆战队下载,胶南饭店

本文实例讲述了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(empty($childs)){
   return null;
  }
 foreach ($childs as $k => $v){
  $rescurtree=build_tree($rows,$v['id']);
  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] => 首尔
      )
    )
  )
)

更多关于php相关内容感兴趣的读者可查看本站专题:《php数组(array)操作技巧大全》、《php排序算法总结》、《php常用遍历算法与技巧总结》、《php数据结构与算法教程》、《php程序设计算法总结》、《php数学运算技巧总结》、《php正则表达式用法总结》、《php运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网