php無限級分類實踐
阿新 • • 發佈:2018-12-11
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}
符合預期