最新赞助活动温馨提示:自愿赞助服务器费用,学生和没有工作的整站资源免费下载!
头像

请教怎么将多维数组转换为二维数组

来源:http://erdangjiade.com/topic/79870.html 你好,世界。 2017-10-04 21:03浏览(0)

请问如何将多维数组转换为二维数组?
比如无限级菜单,通过递归后是一个多维数组,我想把这个多维数组转换为二维数组并重新排序后进行foreach,请问这个function该如何写?
------解决方案--------------------
$a = array(
0=>array(
'categoryid'=>1,
'name'=>"AA1",
'parent'=>0,
'childs'=>array(
0=>array(
'categoryid'=>2,
'name'=>"BB1",
'parent'=>1,
'childs'=>array(
0=>array(
'categoryid'=>3,
'name'=>"CC",
'parent'=>2,
'childs'=>array(
0=>array(
'categoryid'=>4,
'name'=>"dd1",
'parent'=>3,
),
1=>array(
'categoryid'=>5,
'name'=>"dd2",
'parent'=>3,
),
),
),
),
),
1=>array(
'categoryid'=>6,
'name'=>"BB2",
'parent'=>1,
),
),
),
1=>array(
'categoryid'=>7,
'name'=>"AA2",
'parent'=>0,
)
);
function imp($tree, $children='childs') {
$imparr = array();
foreach($tree as $w) {
if(isset($w[$children])) {
$t = $w[$children];
unset($w[$children]);
$imparr[] = $w;
if(is_array($t)) $imparr = array_merge($imparr, imp($t, $children));
} else {
$imparr[] = $w;
}
}
return $imparr;
}
print_r(imp($a));
Array
(
[0] => Array
(
[categoryid] => 1
[name] => AA1
[parent] => 0
)

[1] => Array
(
[categoryid] => 2
[name] => BB1
[parent] => 1
)

[2] => Array
(
[categoryid] => 3
[name] => CC
[parent] => 2
)

[3] => Array
(
[categoryid] => 4
[name] => dd1
[parent] => 3
)

[4] => Array
(
[categoryid] => 5

评论0
头像

友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群

1 2