不用遞迴實現無限分類資料的樹形格式化

2022-05-09 21:43:34 字數 3404 閱讀 2575

[php]

<?php

/** * 此方法由@tonton 提供

* * @date 2012-12-12

*/function gentree5($items)

/** * 將資料格式化成樹形結構

* @author xuefen.tong

* @param array $items

* @return array

*/function gentree9($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 => array('id' => 4, 'pid' => 2, 'name' => '哈爾濱市'),

5 => array('id' => 5, 'pid' => 2, 'name' => '雞西市'),

6 => array('id' => 6, 'pid' => 4, 'name' => '香坊區'),

7 => array('id' => 7, 'pid' => 4, 'name' => '南崗區'),

8 => array('id' => 8, 'pid' => 6, 'name' => '和興路'),

9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'),

10 => array('id' => 10, 'pid' => 8, 'name' => '東北林業大學'),

11 => array('id' => 11, 'pid' => 9, 'name' => '哈爾濱工業大學'),

12 => array('id' => 12, 'pid' => 8, 'name' => '哈爾濱師範大學'),

13 => array('id' => 13, 'pid' => 1, 'name' => '贛州市'),

14 => array('id' => 14, 'pid' => 13, 'name' => '贛縣'),

15 => array('id' => 15, 'pid' => 13, 'name' => '于都縣'),

16 => array('id' => 16, 'pid' => 14, 'name' => '茅店鎮'),

17 => array('id' => 17, 'pid' => 14, 'name' => '大田鄉'),

18 => array('id' => 18, 'pid' => 16, 'name' => '義源村'),

19 => array('id' => 19, 'pid' => 16, 'name' => '上壩村'),

);echo "";

print_r(gentree5($items));

print_r(gentree9($items));

//後者輸出格式,前者類似,只是陣列鍵值不一樣,不過不影響資料結構

/*array

([0] => array

([id] => 1

[pid] => 0

[name] => 江西省

[son] => array

([0] => array

([id] => 3

[pid] => 1

[name] => 南昌市

)[1] => array

([id] => 13

[pid] => 1

[name] => 贛州市

[son] => array

([0] => array

([id] => 14

[pid] => 13

[name] => 贛縣

[son] => array

([0] => array

([id] => 16

[pid] => 14

[name] => 茅店鎮

[son] => array

([0] => array

([id] => 18

[pid] => 16

[name] => 義源村

)[1] => array

([id] => 19

[pid] => 16

[name] => 上壩村))

)[1] => array

([id] => 17

[pid] => 14

[name] => 大田鄉))

)[1] => array

([id] => 15

[pid] => 13

[name] => 于都縣))

))

)[1] => array

([id] => 2

[pid] => 0

[name] => 黑龍江省

[son] => array

([0] => array

([id] => 4

[pid] => 2

[name] => 哈爾濱市

[son] => array

([0] => array

([id] => 6

[pid] => 4

[name] => 香坊區

[son] => array

([0] => array

([id] => 8

[pid] => 6

[name] => 和興路

[son] => array

([0] => array

([id] => 10

[pid] => 8

[name] =>

東北林業大學

)[1] => array

([id] => 12

[pid] => 8

[name] =>

哈爾濱師範大學))

))

)[1] => array

([id] => 7

[pid] => 4

[name] => 南崗區

[son] => array

([0] => array

([id] => 9

[pid] => 7

[name] => 西大直街

[son] => array

([0] => array

([id] => 11

[pid] => 9

[name] =>

哈爾濱工業大學))

))))

)[1] => array

([id] => 5

[pid] => 2

[name] => 雞西市))

))*/[/php]

php不用遞迴實現無限分類資料的樹形格式化

此方法由 tonton 提供 date 2012 12 12 function gentree5 items 將資料格式化成樹形結構 author xuefen.tong param array items return array function gentree9 items items arr...

(無限級 非遞迴)樹形分類

記得之前有一次去面試,被問了無限級怎麼做。我想很簡單,就說了最基本的結構 id name parentid。又被問就這樣嗎?顯然不被滿意。後面自然就沒通過面試。遇上技術型面試官,如果問的技術問題不被滿意,大抵就沒有下文了。遇上那些一副老子技術天下第一,狗眼看人低的面試官,那就自認倒霉吧。遇上追問你如...

PHP中不用遞迴實現無限極分類

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 2,name ...