夺命雷公狗---无限级分类NO5
2015-10-24 21:39
253 查看
<?php header("Content-Type:text/html;charset=utf-8"); $aarr = array( array('id'=>1,'name'=>'安徽','pid'=>0), array('id'=>2,'name'=>'海淀','pid'=>7), array('id'=>3,'name'=>'浣溪县','pid'=>5), array('id'=>4,'name'=>'昌平','pid'=>7), array('id'=>5,'name'=>'淮北','pid'=>1), array('id'=>6,'name'=>'朝阳','pid'=>7), array('id'=>7,'name'=>'北京','pid'=>0), array('id'=>8,'name'=>'上地','pid'=>2) ); //家谱树的应用,如面包屑导航,首页 > 手机类型 > GSM手机 > iPhone > iPhone6s function familytree($arr,$id){ $tree = array(); foreach($arr as $v){ if($v['id'] == $id){ $tree[] = $v; if($v['pid'] > 0){ array_push($tree,familytree($arr,$v['pid'])); } } } return $tree; } echo "<pre>"; print_r(familytree($aarr,8));
这样好像是可以了,但实际上返回的是一个二维数组,所以还是不行,那么只能将使用array_push的用法换成array_merge了如下所示:
<?php header("Content-Type:text/html;charset=utf-8"); $aarr = array( array('id'=>1,'name'=>'安徽','pid'=>0), array('id'=>2,'name'=>'海淀','pid'=>7), array('id'=>3,'name'=>'浣溪县','pid'=>5), array('id'=>4,'name'=>'昌平','pid'=>7), array('id'=>5,'name'=>'淮北','pid'=>1), array('id'=>6,'name'=>'朝阳','pid'=>7), array('id'=>7,'name'=>'北京','pid'=>0), array('id'=>8,'name'=>'上地','pid'=>2) ); //家谱树的应用,如面包屑导航,首页 > 手机类型 > GSM手机 > iPhone > iPhone6s function familytree($arr,$id){ $tree = array(); foreach($arr as $v){ if($v['id'] == $id){ $tree[] = $v; if($v['pid'] > 0){ $tree = array_merge($tree,familytree($arr,$v['pid'])); } } } return $tree; } echo "<pre>"; print_r(familytree($aarr,8));
相关文章推荐
- 系统利益相关者描述案例
- 三种UFT打开程序的方法
- C++设计模式之策略模式
- Hadoop集群搭建
- java 命令模式详解,敢不敢稍微不同一点
- 2015年10月24日作业
- Flask-Bootstrap集成Twitter Bootstrap
- 6、10月23日
- 演讲稿如何结尾
- 《大道至简》第四章读后感
- 课堂讨论记录
- 函数的返回值value的二进制位模式从左到右翻转后的值
- 当前目录查找可执行文件的方法,编辑profile
- JAVA中IO流部分复制文件常用的四中方法
- Keepalived+HAProxy基于读写分离方式实现discuz论坛
- centos 安装memcache服务后memcahce本机连接Permission
- 图学java基础篇之集合
- 求一个整数任意次方的后三位数
- GC垃圾回收器
- C++读取INI配置文件