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 从数据库提取二进制图片的处理代码
Sep 09 PHP
PHP类中Static方法效率测试代码
Oct 17 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
PHP中echo和print的区别
Aug 28 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
php结合正则获取字符串中数字
Jun 19 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
php 后端实现JWT认证方法示例
Sep 04 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 按位与或 (^ 、&amp;)
2013/06/21 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
用ADODB.Stream转换
2007/01/22 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
浅谈python写入大量文件的问题
2018/11/09 Python
Django组件cookie与session的具体使用
2019/06/05 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
数控技术专业毕业自荐书范文
2014/02/05 职场文书
节水倡议书范文
2014/04/15 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers