無限極分類

2022-07-20 04:27:10 字數 1039 閱讀 6212

面試的時候被問到無限極分類的設計和實現,比較常見的做法是在建表的時候,增加乙個pid欄位用來區別自己所屬的分類

$array = array(

array('id' => 1, 'pid' => 0, 'name' => '河北省'),

array('id' => 2, 'pid' => 0, 'name' => '北京市'),

array('id' => 3, 'pid' => 1, 'name' => '邯鄲市'),

array('id' => 4, 'pid' => 2, 'name' => '朝陽區'),

array('id' => 5, 'pid' => 2, 'name' => '通州區'),

array('id' => 6, 'pid' => 4, 'name' => '望京'),

array('id' => 7, 'pid' => 4, 'name' => '酒仙橋'),

array('id' => 8, 'pid' => 3, 'name' => '永年區'),

array('id' => 9, 'pid' => 1, 'name' => '武安市'),

);無限極實現

/*** 遞迴實現無限極分類

* @param $array 分類資料

* @param $pid 父id

* @param $level 分類級別

* @return $list 分好類的陣列 直接遍歷即可 $level可以用來遍歷縮排

*/function gettree($array, $pid =0, $level = 0)

}return $list;}/*

* 獲得遞迴完的資料,遍歷生成分類

*/$array = gettree($array);

foreach($array) as $value

//輸出結果 無限極分類實現ok

河北省--邯鄲市

----永年區

--武安市

北京市--朝陽區

----望京

----酒仙橋

--通州區

無限極分類,遞迴分類

有一組陣列如下 items array 1 array id 1,pid 0,name 江西省 2 array id 2,pid 0,name 黑龍江省 3 array id 3,pid 1,name 南昌市 4 array id 4,pid 2,name 哈爾濱市 5 array id 5,pid...

php無限極分類

無限級分類 param1 array categories,要分類的陣列 param2 int stop id 不需要查詢子分類的id param3 int parent id 0,要查詢父分類id 欄位名稱 param4 int level 0,當前商品分類所屬的層級 根據level計算縮排的距離...

PHP無限極分類

function gentree5 items function gentree7 items items array 1 array id 1,pid 0,name 江西省 2 array id 2,pid 0,name 黑龍江省 3 array id 3,pid 1,name 南昌市 4 arr...