thinkphp输出的分类信息怎么缩进
2016-12-09 17:11
274 查看
$array=array( array('id'=>1,'pid'=>0,'name'=>'北京'), array('id'=>2,'pid'=>1,'name'=>'丰台'), array('id'=>3,'pid'=>0,'name'=>'浙江'), array('id'=>4,'pid'=>3,'name'=>'台州'), array('id'=>5,'pid'=>2,'name'=>'石榴庄'), array('id'=>6,'pid'=>5,'name'=>'东街二区'), array('id'=>7,'pid'=>4,'name'=>'临海') ); //数组,pid, 等级.递归方法找子孙树 function getTreeArray($arr,$pid,$lev=0){ //$tree=array(); static $tree=array(); foreach ($arr as $key => $value) { if($value['pid']==$pid){ $value['lev']=$lev; $tree[]=$value; //$tree=array_merge($tree,getTreeArray($arr,$value['id'],++$lev)); getTreeArray($arr,$value['id'],$lev+1); } } return $tree; } /* 北京 --丰台 ----石榴庄 ------东街二区 浙江 --台州 ----临海 */ //面包屑导航 北京->丰台->石榴庄->东街二区 //根据子找父 function getTree($arr,$id){ static $tree=array(); foreach($arr as $v){ if($v['id']==$id){ $tree[]=$v; if($v['pid']>0){ getTree($arr,$v['pid']); } } } return $tree; } $tree = getTreeArray($array,0); echo '<pre>-----------分类树------------</pre>'; foreach ($tree as $key => $value) { echo str_repeat('--', $value['lev']),$value['name'],''; } echo '<pre>-----------面包屑导航------------</pre>'; function getBread($arr){ $arr=array_reverse($arr);//反转数组 $str=''; foreach ($arr as $value) { $str.=$value['name'].'->'; } $str=rtrim($str,'->'); return $str; } $bread=getTree($array,7); echo getBread($bread); echo '';
相关文章推荐
- PHP无限级分类排序输出以及分级缩进思路以及解决方案[修正]
- 怎么输出COLORREF类型的RGB信息
- TP5版本的session信息怎么在前台输出
- 一个网站要提供很多种商品和信息 当然就有很多分类了 请问数据库怎么设计阿?
- dedecms分类信息怎么调用到网站首页上
- tp5版本的session信息怎么在前台输出,而且在输出前用PHP进行预处理(比如一些简单的判断判断)。
- 在myeclipse中启动tomcat时没看到输出信息怎么办?
- thinkphp怎么修改默认提示信息
- 编译Linux/Android 输出很多信息很难找到错误/警告信息怎么办?
- [php] [Thinkphp]递归处理将分类按级别输出
- ThinkPHP5无限循环输出无限分类【方案三】
- 【linux/perl】终端运行的程序怎么屏蔽错误信息的输出?
- Java调用weka实现交叉验证,并输出分类信息
- android怎么输出信息到logcat
- thinkphp操作完提示信息该怎么弄成弹出层啊?
- thinkphp怎么like模糊查询数据库的信息curd操作
- ASP.NET后台怎么输出方法中间调试信息?
- ThinkPHP5无限循环输出无限分类【方案二】
- thinkphp和ecmall是怎么输出模板
- windows命令行由于输出信息太多看不了完整的信息怎么办