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算开始时间到过期时间的相隔的天数
Jan 12 PHP
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
PHP的PSR规范中文版
Sep 28 PHP
CI框架Session.php源码分析
Nov 03 PHP
php禁止浏览器使用缓存页面的方法
Nov 07 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php生成扇形比例图实例
2013/11/06 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
团员个人的自我评价
2013/12/02 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
产品包装策划方案
2014/05/18 职场文书
考察现实表现材料
2014/05/19 职场文书
卖房授权委托书样本
2014/10/05 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
工程技术员岗位职责
2015/04/11 职场文书
入党积极分子考察意见
2015/06/02 职场文书
告知书格式
2015/07/01 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
深入浅析Django MTV模式
2021/09/04 Python