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 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
php实现httpRequest的方法
Mar 13 PHP
php eval函数一句话木马代码
May 21 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
一个域名查询的程序
2006/10/09 PHP
php中switch语句用法详解
2015/08/17 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
原生js写的放大镜效果
2012/08/22 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
详解使用webpack构建多页面应用
2017/12/21 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python的迭代器和生成器
2015/07/29 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
python实现猜单词小游戏
2020/05/22 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
项目建议书怎么写
2014/05/15 职场文书
高考励志标语
2014/06/05 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
JavaScript实现简单的音乐播放器
2022/08/14 Javascript