php實現無限極分類

2021-07-25 03:18:34 字數 1427 閱讀 8859

利用兩個for迴圈實現無限級分類

表:

欄位名字段型別

備註預設值

idint

主鍵 auto-increment

name

varchar

分類名稱

pidint

父類id0

頂級分類的 pid 預設就是0了。當我們想取出某個分類的子分類樹的時候,基本思路就是遞迴,當然,出於效率問題不建議每次遞迴都查詢資料庫,通常的做法是先將所有分類取出來,資料儲存到php陣列裡,再進行處理,最後還可以將結果快取起來以提高下次請求的效率。

1.構建資料

$categories = array(

array('id'=>1,'name'=>'電腦','pid'=>0),

array('id'=>2,'name'=>'手機','pid'=>0),

array('id'=>3,'name'=>'筆記本','pid'=>1),

array('id'=>4,'name'=>'台式電腦','pid'=>1),

array('id'=>5,'name'=>'智慧型機','pid'=>2),

array('id'=>6,'name'=>'功能機','pid'=>2),

array('id'=>7,'name'=>'超級本','pid'=>3),

array('id'=>8,'name'=>'遊戲本','pid'=>3),

);

目標是將它轉化為下面這種結構

電腦 >筆記本 >>超級本 >> 遊戲本 > 台式電腦

手機 > 智慧型機 > 功能機

2. 處理過程:

$tree = array();

//第一步,將所有的分類id作為陣列key,並建立children單元

foreach($categories

as$category)

//第二步,利用引用,將每個分類新增到父類children陣列中,這樣一次遍歷即可形成樹形結構。

foreach ($tree

as$key=>$value)

}print_r($tree);

原文

二。遞迴分類

class category

}return $tree;}}

function  tree(&$list,$pid=0,$level=0,$html='--') 

} return$tree;}

PHP實現無限極分類

created by epp4.user t470 date 15 08 08 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories arr...

php實現無限極分類

最近在負責報表自動化管理的小功能,想從工作內容中整理點東西形成部落格。但是過程中發現,這功能並沒有 實現上的難點。基本上值得說的地方,也就定時任務的合理設計,而定時任務之前有相關的博文。再有就是,開發思路和資料庫合理的設計。這部分也不好形成文章。但是好久沒有寫部落格,希望能堅持下來。想起之前寫過幾個...

php實現無限極分類

面試的時候被問到無限極分類的設計和實現,比較常見的做法是在建表的時候,增加乙個pid欄位用來區別自己所屬的分類 array array array id 1,pid 0,name 河北省 array id 2,pid 0,name 北京市 array id 3,pid 1,name 邯鄲市 arra...