1. 程式人生 > >php無限級分類實踐

php無限級分類實踐

1.先設計好資料庫新增好分類資料 具體設計可以看這個PHP無限級分類設計

可以隨便扒一個顯示多級分類的導航欄

2.控制器關鍵程式碼 先寫個三級分類的 多級就多次迴圈即可

 public function index()
   {

       $type1=Db::name('goods_class')->where(array('pid'=>0))->field('id,pid,name')->select();//獲取一級分類
       $type2=array();
       $type3=array();
       foreach ($type1 as $k=>$v){
           $type1[$k]['child']=array();
           $type2=Db::name('goods_class')->where(array('pid'=>$v['id']))->field('id,pid,name')->select();//獲取二級分類
      foreach ($type2 as $key=>$val){

          array_push($type1[$k]['child'],$val);//合併一二級分類
          $type1[$k]['child'][$key]['child2']=array();//組裝三級分類的陣列
          $type3=Db::name('goods_class')->where(array('pid'=>$val['id']))->field('id,pid,name')->select();//獲取三級分類
          foreach ($type3 as $v2){
           array_push($type1[$k]['child'][$key]['child2'],$v2);
          }
      }

       }
       $this->assign('type',$type1);
       return $this->fetch();

   }

2.頁面程式碼 主要關鍵點

{foreach $type as $data}      

        <li>一級分類名字 {$data.name} </li>

      {foreach $data['child'] as $data2}

         <li>二級分類名字 {$data2.name} </li>         

   {foreach $data2['child2'] as $data3}

         <li>三級分類名字 {$data3.name} </li>

          {/foreach}

     {/foreach}

{/foreach}

符合預期