樹的結構,無限極關聯

2022-03-04 02:08:43 字數 1199 閱讀 2026

data=[,,

,,,,

]# 1、變成這種格式

'''上海

-浦東--張江

-青浦北京

昌平'''

res =

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

for item in data:

if item['parent_id'] == parent_id:

item['level'] = level

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

return res

t=get_son(data)

for i in t:

print(i['level']*"-",i['name'])

# 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: # 說明它是根節點

else:

if 'children' not in tree[item['parent_id']]: # 判斷每乙個字典(物件)有沒有屬於自己的兒子

tree[item['parent_id']]['children'] = # 沒有就給字典(該物件)新增乙個新的名為children的key,並且賦值空列表

return lists

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

PHP無限極分類樹

建表資料 create table limit tree id int 10 unsigned not null auto increment,pid int 10 unsigned not null default 0 name varchar 64 not null default primar...

無限極分類

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

分類樹,處理無限極分類

這裡沒有用遞迴查詢,而是用得另一種處理方法 思路 獲取到資料庫的所有分類,通過 根據pid,返回分類樹,方法 如下 分類樹 public static function gettree data halt items tree foreach items as id item else return...