求助,商城栏目数组,递归,迭代,将栏目存为三维数组

浏览:340 发布日期:2018/01/24 分类:求助交流 关键字: 栏目,三维数组,递归,迭代
$cat = [
    ['id'=>1,'name'=>"衣服",'parent_id'=>0],
    ['id'=>2,'name'=>"书籍",'parent_id'=>0],
    ['id'=>3,'name'=>"T恤",'parent_id'=>1],
    ['id'=>4,'name'=>"裤子",'parent_id'=>1],
    ['id'=>5,'name'=>"鞋子",'parent_id'=>1],
    ['id'=>6,'name'=>"皮鞋",'parent_id'=>5],
    ['id'=>7,'name'=>"运动鞋",'parent_id'=>5],
    ['id'=>8,'name'=>"耐克",'parent_id'=>7],
    ['id'=>9,'name'=>"耐克",'parent_id'=>3],
    ['id'=>10,'name'=>"鸿星尔克",'parent_id'=>7],
    ['id'=>11,'name'=>"小说",'parent_id'=>2],
    ['id'=>12,'name'=>"科幻小说",'parent_id'=>11],
    ['id'=>13,'name'=>"古典名著",'parent_id'=>11],
    ['id'=>14,'name'=>"文学",'parent_id'=>2],
    ['id'=>15,'name'=>"四书五经",'parent_id'=>14]
];
请用尽量少的循环,将$cat 输出为 $categorys$categorys = [
    '1' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0] ],
    '2' => [ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0] ],
    '3' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0], 
             '1' => [ 'id' => 3,'name' => 'T恤' ,'parent_id' => 1] ],
    '4' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 4,'name' => '裤子','parent_id' => 1] ],
    '5' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 5,'name' => '鞋子','parent_id' => 1] ],
    '6' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 5,'name' => '鞋子','parent_id' => 1],
             '2' => [ 'id' => 6,'name' => '皮鞋','parent_id' => 5] ],
    '7' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 5,'name' => '鞋子','parent_id' => 1],
             '2' => [ 'id' => 7,'name' => '运动鞋','parent_id' => 5] ],
    '8' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 5,'name' => '鞋子','parent_id' => 1],
             '2' => [ 'id' => 7,'name' => '运动鞋','parent_id' => 5],
             '3' => [ 'id' => 8,'name' => '耐克','parent_id' => 7] ],
    '9' => [ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 3,'name' => 'T恤' ,'parent_id' => 1],
             '2' => [ 'id' => 9,'name' => '耐克','parent_id' => 3] ],
    '10' =>[ '0' => [ 'id' => 1,'name' => '衣服','parent_id' => 0],
             '1' => [ 'id' => 5,'name' => '鞋子','parent_id' => 1],
             '2' => [ 'id' => 7,'name' => '运动鞋','parent_id' => 5],
             '3' => [ 'id' => 10,'name' => '鸿星尔克','parent_id' => 7] ],
    '11' =>[ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0],
             '1' => [ 'id' => 11,'name' => '小说','parent_id' => 2] ],
    '12' =>[ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0 ],
             '1' => [ 'id' => 11,'name' => '小说','parent_id' => 2],
             '2' => [ 'id' => 12,'name' => '科幻小说','parent_id' => 11] ],
    '13' =>[ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0 ],
             '1' => [ 'id' => 11,'name' => '小说','parent_id' => 2],
             '2' => [ 'id' => 13,'name' => '古典名著','parent_id' => 11] ],
    '14' =>[ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0],
             '1' => [ 'id' => 14,'name' => '文学','parent_id' => 2] ],
    '15' =>[ '0' => [ 'id' => 2,'name' => '书籍','parent_id' => 0],
             '1' => [ 'id' => 14,'name' => '文学','parent_id' => 2],
             '2' => [ 'id' => 15,'name' => '四书五经','parent_id' => 14] ]
];
可参考递归函数
function recTree($arr,$parent_id=0,$lev=0){
$tree = array();
foreach ($arr as $k => $v) {
if ($v['parent_id'] == $parent_id){
$v['lev'] = $lev;
$tree[] = $v;
$tree = array_merge($tree,recTree($arr,$v['id'],$lev+1));
}
}
return $tree;
最佳答案
评论( 相关
后面还有条评论,点击查看>>