PHP利用递归法获取多级类别的树状数组
2014-02-21 14:56
295 查看
数据结构:category(id, pid, name),对应:信息ID,父项ID,类别名
测试数据:
+++++++++++++++++++++++++++++
代码:
测试数据:
$aryCate = array( array('id' => 1, 'pid' => 0, 'name' => 'Level0'), array('id' => 2, 'pid' => 1, 'name' => 'Level0_1'), array('id' => 3, 'pid' => 2, 'name' => 'Level0_1_1'), array('id' => 4, 'pid' => 3, 'name' => 'Level0_1_1_1'), array('id' => 5, 'pid' => 3, 'name' => 'Level0_1_1_2'), array('id' => 6, 'pid' => 0, 'name' => 'Level0'), array('id' => 7, 'pid' => 6, 'name' => 'Level0_2'), array('id' => 8, 'pid' => 7, 'name' => 'Level0_2_1'), array('id' => 9, 'pid' => 8, 'name' => 'Level0_2_1_1'), array('id' => 10, 'pid' => 8, 'name' => 'Level0_2_1_2'), array('id' => 11, 'pid' => 0, 'name' => 'Level0'), array('id' => 12, 'pid' => 11, 'name' => 'Level0_3'), array('id' => 13, 'pid' => 12, 'name' => 'Level0_3_1'), array('id' => 14, 'pid' => 13, 'name' => 'Level0_3_1_1'), array('id' => 15, 'pid' => 13, 'name' => 'Level0_3_1_2'), array('id' => 16, 'pid' => 0, 'name' => 'Level0'), array('id' => 17, 'pid' => 1, 'name' => 'Level0_2'), );
+++++++++++++++++++++++++++++
代码:
/** * 利用递归法获取无限极类别的树状数组 * @param array $ary 数据库读取数组 * @param int $pid 父级ID(顶级类别的pid为0) * @param int $level 返回的树状层级 * @param int $i 层级起始值 * @return array 返回树状数组 */ function aryTree($ary = array(), $pid = 0, $level = 10, $i = 1){ $arr = array(); foreach($ary as $rs){ if($rs['pid'] == $pid){ if($i <= $level){ $arr[$rs['id']] = $rs; }else{ break; } $n = $i; $n++; $sub = aryTree($ary, $rs['id'], $level, $n); empty($sub) OR $arr[$rs['id']]['sub'] = $sub; }else{ continue; } } return $arr; }
相关文章推荐
- 利用php获取图片完整Exif信息类 获取图片详细完整信息类
- php利用curl获取远程图片实现方法
- php利用mkdir创建多级目录
- 利用php获取图片完整Exif信息类 获取图片详细完整信息类
- 【转】php利用mkdir创建多级目录
- 利用PHP 插件如何判断是否是有图新闻及获取图片地址教程
- PHP获取毫秒时间戳,利用microtime()函数
- php利用新浪接口查询ip获取地理位置
- 利用php获取服务器时间的实现代码
- php 利用array_slice函数获取随机数组或前几条数据
- 利用php反射机制 获取权限
- php利用curl获取远程图片实现方法
- 利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
- [PHP][Class]利用DOMDocument获取XML内容[已验证][原创]
- PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
- IIS 伪静态下 利用PHP获取 网址后缀
- 利用PHP正则获取淘宝彩票页面的比赛信息
- 利用php实现:当获取的网址不是特定网址时候跳转到指定地址
- php利用curl获取网页title内容
- 利用PHP获取网站访客的所在地位置