首頁  >  文章  >  後端開發  >  php中的無限極分類

php中的無限極分類

不言
不言原創
2018-05-31 17:34:351849瀏覽

這篇文章主要介紹了關於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中的密碼加密的解決方案總結

以上是php中的無限極分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn