牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp输出的分类信息怎么缩进

创建时间:2016-12-09 投稿人: 浏览次数:642
$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 "";
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。