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

 我来答
魔兽kafka
2015-07-16 · 超过27用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:56.5万
展开全部

你的意思我大体理解为无限极分类,你可以参考下我练习的代码

$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'],'<br/>';
}
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 '<br/>';
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式