這篇文章主要介紹了關於php中的無限極分類,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
1.首先無限極分類對應的表的結構
| cate_id | cate_name| parentid(默认0)| | -------- | -----: | :----: | | 1 | 键盘 | 0 | | 2 | 机械键盘 | 1 | | 3 | cherry键盘| 2 |
這裡面能看出來cherry的parentid的值等於等於他上一層的cate_id,這也就是無限極分類的核心
2.無限分類功能就是把資料庫中的資料從新排序
控制器下程式碼:
public function index(){ $cate = D('category')->catetree(); $this->assign('cate',$cate); $this->display(); }
這裡$cate呼叫catetree()方法,那麼下面我們對應的Model裡面的程式碼
Model下的代码:public function catetree(){ $data = $this->select(); return $this->resort($data); }
先查詢對應category表裡面的所有資料並return一個新的方法
public function resort($data,$parentid=0,$level=0){ static $ret = array(); foreach ($data as $key => $v) { if ($v['parentid']==$parentid) { $v['level']=$level; $ret[]=$v; $this->resort($data,$v['cate_id'],$level+1); } } return $ret ; }
先產生一個靜態數組,然後把catetree()
方法傳過來的$data
進行遍歷,判斷條件就是為了找到頂級那條數據。先把頂級那條資料存到靜態數組裡面,然後在呼叫本身,並且把頂級欄目的id做為參數傳出去。
這樣一來$parentid=$v['cate_id']
最終無線分類的功能就做完了!
相關推薦:
以上是php中的無限極分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!