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+DBM的同学录程序(1)
Oct 09 PHP
php更改目录及子目录下所有的文件后缀的代码
Sep 24 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
PHP加密解密函数详解
Oct 28 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
php写入文件不覆盖的实例讲解
Sep 17 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
vue实现文件上传读取及下载功能
2020/11/17 Javascript
vue实现弹幕功能
2019/10/25 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
解决DataFrame排序sort的问题
2018/06/07 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
前台文员岗位职责及工作流程
2013/11/19 职场文书
社区工作者思想汇报
2014/01/13 职场文书
入学申请自荐信范文
2014/02/26 职场文书
施工安全承诺书
2014/05/22 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技