無限級分類

2022-05-06 20:39:05 字數 1742 閱讀 9067

將資料如下輸出:

上海-青浦

-浦東--張江

北京-昌平

data=[,,

,,,,

]res =

def get_son(data, level=0, parent_id=0):

for item in

data:

#如果當前迴圈的parent_id=parent_id,將level等級新增到列表中

if item['

parent_id

'] ==parent_id:

item[

'level

'] =level

#迴圈所有的資料

get_son(data, level+1, parent_id=item['

cat_id'])

return

rest =get_son(data)

for i in

t:

print(i['

level

']*'

-', i['

name'])

#北京#- 昌平#上海

#- 青浦

#- 浦東

#-- 張江

需求如下:

將data 資料變成lists

lists=},

,]}]}]

#

2、變成這種格式

'''data1 = [,]

}]},]

'''def

get_tree(data):

lists =

tree ={}

for i in

data:

tree[i[

'cat_id

']] = i #

給它變成k,v的形式,k就是cat_id,v就是這個字典物件

for item in

data:

if item['

parent_id

'] == 0: #

說明它是根節點

cat_id

']]) #

將根節點的字典新增到列表中

else

: if'

children

'not

in tree[item['

parent_id

']]: #

判斷每乙個字典(物件)有沒有屬於自己的兒子

tree[item['

parent_id

']]['

children

'] = #

沒有就給字典(該物件)新增乙個新的名為children的key,並且賦值空列表

tree[item['

parent_id

']]['

children

cat_id

']]) #

把兒子物件新增進去

return

lists

#item=為乙個個的字典物件#,

無限級分類

相信在實際專案中很多人在做專案的時候都會用到無限級分類,無限級分類說白了就是乙個遞迴,遞迴在我們的專案開發中起到很重要的作用,如 麵包屑導航等。下面我們演示乙個遞迴的案例 area array array id 1,name 安徽 parent 0 array id 2,name 海淀 parent...

無限級分類

無限極分類其實就是乙個遞迴便利 1,查詢所有資料 namespace home controller use think controller class indexcontroller extends controller 2,遞迴便利資料 namespace home model use thi...

PHP無限級分類

建表sql如下 create table ifnot exists deepcate id int 4 notnull pid int 11 notnull catename varchar 30 not null cateorder int 11 unsigned notnull default ...