您的位置:首页 > 编程语言 > PHP开发

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 '';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thinkphp