數據表結構

函數:
function make_tree($list,$pk='id',$pid='pid',$child='_child',$root=0){
$tree=array();
$packData=array();
//轉換數組的結構
foreach ($list as $data) {
$packData[$data[$pk]] = $data;
}
foreach ($packData as $key =>$val){
if($val[$pid]==$root){//代表跟節點
$tree[]=& $packData[$key];
}else{
//找到其父類
$packData[$val[$pid]][$child][]=& $packData[$key];
}
}
return $tree;
}
$arr = make_tree($list, 'cat_id', "parent_id", "son", 0);
var_dump($arr);
結果:
array(5) {
[0] => array(6) {
["cat_id"] => string(1) "1"
["cat_name"] => string(6) "女裝"
["parent_id"] => string(1) "0"
["sort_order"] => string(2) "50"
["is_show"] => string(1) "1"
["son"] => array(3) {
[0] => array(6) {
["cat_id"] => string(1) "6"
["cat_name"] => string(9) "連衣裙"
["parent_id"] => string(1) "1"
["sort_order"] => string(2) "50"
["is_show"] => string(1) "1"
["son"] => array(1) {
[0] => array(5) {
["cat_id"] => string(2) "31"
["cat_name"] => string(12) "我的最愛"
["parent_id"] => string(1) "6"
["sort_order"] => string(2) "50"
["is_show"] => string(1) "1"
}
}
}
.....
