php遞迴無限級樹形結構

2021-09-25 20:06:39 字數 1255 閱讀 7513

<?php

$array = [

['id' => 1, 'pid' => 0, 'name' => '這是主類'],

['id' => 2, 'pid' => 0, 'name' => '這是主類'],

['id' => 3, 'pid' => 1, 'name' => '父級為1子類'],

['id' => 4, 'pid' => 2, 'name' => '父級為2子類'],

['id' => 5, 'pid' => 3, 'name' => '父級為3子類'],

];function tree($array,$pid)

$tree = $v;

} }return $tree;

}echo "" . print_r(tree($array, 0),1) . "

";

?>

列印結果

array

( [0] => array

([id] => 1

[pid] => 0

[name] => 這是主類

[child] => array

([0] => array

([id] => 3

[pid] => 1

[name] => 父級為1子類

[child] => array

([0] => array

([id] => 5

[pid] => 3

[name] => 父級為3子類))

))

)[1] => array

([id] => 2

[pid] => 0

[name] => 這是主類

[child] => array

([0] => array

([id] => 4

[pid] => 2

[name] => 父級為2子類))

))

第二種方式 陣列引用

function generatetree($rows, $id = 'id', $pid = 'pid')

foreach ($items as $item)

return isset($items[0]['son']) ? $items[0]['son'] : array();

}echo "" . print_r(generatetree($array), 1) . "

";

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

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

PHP 無限級分類 遞迴

arr array array id 1,name 電腦 pid 0 array id 2,name 手機 pid 0 array id 3,name 筆記本 pid 1 array id 4,name 台式電腦 pid 1 array id 5,name 智慧型機 pid 2 array id 6...

無限級樹形導航

表 userinfo id id name 導航名稱 superiorid 上級導航id using system using system.collections using system.configuration using system.data using system.linq usin...