您的位置:首页 > 编程语言 > PHP开发

将树形结构的数据转换为二维数组 (续 PHP非递归方式实现无限分类(转载))

2017-07-17 13:59 1201 查看
//将树形结构转换为普通的二维数组

function treeToArray($tree){

static $arr = [];

foreach($tree as $val){

$arr[] = ['id'=>$val['id'],'name'=>$val['name'],'pid'=>$val['pid']];

if(isset($val['son']) && !empty($val['son'])){

treeToArray($val['son']);

}

}

return $arr;

}

//列子

$list = [

1=>['id'=>1,'pid'=>0,'name'=>'服装'],

2=>['id'=>2,'pid'=>0,'name'=>'数码'],

3=>['id'=>3,'pid'=>0,'name'=>'食品'],

4=>['id'=>4,'pid'=>1,'name'=>'男装'],

5=>['id'=>5,'pid'=>1,'name'=>'女装'],

6=>['id'=>6,'pid'=>1,'name'=>'童装'],

7=>['id'=>7,'pid'=>1,'name'=>'内衣'],

8=>['id'=>8,'pid'=>2,'name'=>'平板电脑'],

9=>['id'=>9,'pid'=>2,'name'=>'摄像摄影'],

10=>['id'=>10,'pid'=>2,'name'=>'智能数码'],

11=>['id'=>11,'pid'=>2,'name'=>'娱乐影音'],

12=>['id'=>12,'pid'=>3,'name'=>'新鲜水果'],

13=>['id'=>13,'pid'=>3,'name'=>'蔬菜蛋品'],

14=>['id'=>14,'pid'=>3,'name'=>'精选肉类'],

15=>['id'=>15,'pid'=>3,'name'=>'海鲜水产'],

16=>['id'=>16,'pid'=>7,'name'=>'男士内衣'],

17=>['id'=>17,'pid'=>7,'name'=>'女生内衣'],

];

//1.转换为树形结构

$tree = tree($list);

echo '<pre>';

var_dump($tree);

echo '<hr>';

//将树形结构转换为二维数组

$t = treeToArray($tree);

var_dump($t);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: