thinkphp输出的分类信息怎么缩进
$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 "";
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: yii 使用高级模板(windows)教程
- 下一篇: php左侧分类列表显示菜单