thinkphp 簡單的無限分類實現

function getSonLists($upid=0,$space=''){

    $icon = array(
        '      │',
        '      ├─',
        '      └─'
    );  //格式化的字符
    $category_type = $this->category_type;

    $map['up_id'] = array('eq',$upid);
    // $map['id'] = array('neq',1);
    $lists = M('Category')->where($map)->field('id,catname,up_id,status,sort,model_id,path,type')->order('sort asc,id asc')->select();
    $n = count($lists);
    $cat_all = array();
    if($n){
        $m=1;
        for($i=0;$i<$n;$i++){
            if($n==$m){//只有一個子欄目/最後一個欄目
                $pre = $icon[2];
            }else{
                $pre = $icon[1];
            }
                $pad = $space ? $icon[0] : "";
            $lists[$i]['name']=($space ? $space.$pre : "").$lists[$i]['catname'];
            $cat_all[]=$lists[$i];
            $cat_bbb=$this->getSonLists($lists[$i]['id'], $space.$pad." "); //遞歸下一級分類
            if(count($cat_bbb)){//包含子欄目 合併
                $cat_all=array_merge($cat_all,$cat_bbb);
            }
            $m++;
        }
    }

    return $cat_all;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章