php把400个数组建二维,请教怎么将多维数组转换为二维数组

这篇博客探讨了如何将无限级菜单的多维数组转换为二维数组,以便进行排序和遍历。文中提供了一个PHP函数`imp()`,通过递归方式将具有层级关系的数组展开。该函数首先初始化一个空数组`$imparr`,然后遍历输入的多维数组,如果当前元素有子节点,则继续递归展开,最后返回二维数组。经过函数处理后的数组可以方便地使用`foreach`进行迭代。
摘要由CSDN通过智能技术生成

请问如何将多维数组转换为二维数组?

比如无限级菜单,通过递归后是一个多维数组,我想把这个多维数组转换为二维数组并重新排序后进行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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值