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 相关文章推荐
浅析php变量作用域的一些问题
Aug 08 PHP
php实现监听事件
Nov 06 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
php调用shell的方法
Nov 05 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
PHP与Perl之间知识点区别整理
Mar 19 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 伪静态之IIS篇
2014/06/02 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
python对象及面向对象技术详解
2016/07/19 Python
Unicode和Python的中文处理
2017/03/19 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
selenium自动化测试入门实战
2020/12/21 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
学期研究性学习个人的自我评价
2014/01/09 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
施工员岗位职责
2014/03/16 职场文书
英语系毕业生求职信
2014/07/13 职场文书
教师节活动总结
2014/08/29 职场文书
修辞手法有哪些?
2019/08/29 职场文书
python tkinter模块的简单使用
2021/04/07 Python
Python使用Kubernetes API访问集群
2021/05/30 Python