php递归实现无限分类的方法


Posted in PHP onJuly 28, 2015

本文实例讲述了php递归实现无限分类的方法。分享给大家供大家参考。具体如下:

<?php
$rows = array(
  array(
    'id' => 1,
    'name' => 'dev',
    'parentid' => 0
  ),
  array(
    'id' => 2,
    'name' => 'php',
    'parentid' => 1
  ),
  array(
    'id' => 3,
    'name' => 'smarty',
    'parentid' => 2
  ),
  array(
    'id' => 4,
    'name' => 'life',
    'parentid' => 0
  ),
  array(
    'id' => 5,
    'name' => 'pdo',
    'parentid' => 2
  ),
  array(
    'id' => 6,
    'name' => 'pdo-mysql',
    'parentid' => 5
  ),
  array(
    'id' => 7,
    'name' => 'java',
    'parentid' => 1
  )
);
// 72648
// 84072
function findChild(&$arr,$id){
  $childs=array();
   foreach ($arr as $k => $v){
     if($v['parentid']== $id){
       $childs[]=$v;
     }
  }
  return $childs;
}
function build_tree($root_id){
  global $rows;
  $childs=findChild($rows,$root_id);
  if(empty($childs)){
    return null;
  }
  foreach ($childs as $k => $v){
    $rescurTree=build_tree($v[id]);
    if( null !=  $rescurTree){ 
    $childs[$k]['childs']=$rescurTree;
    }
  }
  return $childs;
}
$tree=build_tree(0);
echo memory_get_usage();
print_r($tree);
?>

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

PHP 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
Oct 22 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 PHP
php类自动加载器实现方法
Jul 28 #PHP
PHP实现的json类实例
Jul 28 #PHP
php无序树实现方法
Jul 28 #PHP
分享PHP函数实现数字与文字分页代码
Jul 28 #PHP
PHP实现简单汉字验证码
Jul 28 #PHP
PHP代码实现表单数据验证类
Jul 28 #PHP
在Mac上编译安装PHP7的开发环境
Jul 28 #PHP
You might like
使用PHP维护文件系统
2006/10/09 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
php while循环控制的简单实例
2016/05/30 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
javaScript 页面自动加载事件详解
2014/02/10 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
vue-axios使用详解
2017/05/10 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
浅谈js中的bind
2019/03/18 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python中join和split用法实例
2015/04/14 Python
Python tkinter label 更新方法
2018/10/11 Python
python binascii 进制转换实例
2019/06/12 Python
python实现月食效果实例代码
2019/06/18 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
华三通信H3C面试题
2015/05/15 面试题
女方回门宴答谢词
2014/01/14 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
爱护公共设施的标语
2014/06/24 职场文书
劳资员岗位职责
2015/02/13 职场文书
实施意见格式范本
2015/06/05 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
vue组件vue-esign实现电子签名
2022/04/21 Vue.js