php實現無限極分類

2021-08-08 01:24:32 字數 1006 閱讀 9231

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

但是好久沒有寫部落格,希望能堅持下來。想起之前寫過幾個遞迴,乾脆就整理一篇簡單的無限極分類。

無限極分類,其實也就是乙個遞迴演算法。合理的利用遞迴確實能節省不少時間,但是對遞迴理解不夠,最後坑的還是自己。

本文以乙個簡單的商品分類,來實現乙個無限極分類。

create

table shop (

id int

notnull auto_increment,

shop_name varchar(128) not

null

default

'', parent_id int

notnull

default

0, primary

key (id)

)

表結構也比較簡單,這裡不詳細說明。parent_id即用來標識當前記錄所屬分類。

public

function

shop_list

($data,&$list)

}return

$list;

}

實現邏輯是這樣的,先查詢出頂層資料。再通過遞迴的方式,逐級查詢資料。

方法的第二個引數,使用了引用。

為了避免遞迴中不停查詢資料,造成資料了壓力。可以先把所有資料查詢出來之後,通過陣列去做遞迴。同樣也能完成無限極分類。

public

function

loop_arr

($data,$pid=0)

}return

$list;

}

記住一點,遞迴中一定要有判斷。不然會無限迴圈下去,直到伺服器崩潰。

php實現無限極分類

利用兩個for迴圈實現無限級分類 表 欄位名字段型別 備註預設值 idint 主鍵 auto increment name varchar 分類名稱 pidint 父類id0 頂級分類的 pid 預設就是0了。當我們想取出某個分類的子分類樹的時候,基本思路就是遞迴,當然,出於效率問題不建議每次遞迴都...

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實現無限極分類

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