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


Posted in PHP onMay 06, 2016

本文实例讲述了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 相关文章推荐
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
基于PHP的简单采集数据入库程序【续篇】
Jul 30 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PHP chunk_split()函数讲解
Feb 12 PHP
Laravel登录失败次数限制的实现方法
Aug 26 PHP
PHP图片加水印实现方法
May 06 #PHP
php数组冒泡排序算法实例
May 06 #PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 #PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 #PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 #PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 #PHP
zen_cart实现支付前生成订单的方法
May 06 #PHP
You might like
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
试用php中oci8扩展
2015/06/18 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
jquery自定义表格样式
2015/11/23 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
jQuery实现增删改查
2020/12/22 jQuery
Python实现端口复用实例代码
2014/07/03 Python
Python实现的ini文件操作类分享
2014/11/20 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
老生常谈python中的重载
2018/11/11 Python
Python属性和内建属性实例解析
2020/01/14 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
virtualenv介绍及简明教程
2020/06/23 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
信息管理员岗位职责
2013/12/01 职场文书
写给女生的道歉信
2014/01/14 职场文书
入党自我鉴定
2014/03/25 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
感谢信格式范文
2015/01/22 职场文书
运动会加油稿30字
2015/07/21 职场文书
公司车队管理制度
2015/08/04 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
MySQL RC事务隔离的实现
2022/03/31 MySQL