Php 多数组合并到具有键的新数组中
原始数组:Php 多数组合并到具有键的新数组中,php,arrays,Php,Arrays,原始数组: $cat = Array ( [0] => Array ( [id] => 2 [name] => W [pid] => 1 ) [1] => Array ( [id] => 4 [name] => M [pid] => 1 ) [2] => Array ( [id] => 5 [name] => C [pid] => 1 ) [3] => Array ( [id]
$cat = Array (
[0] => Array ( [id] => 2 [name] => W [pid] => 1 )
[1] => Array ( [id] => 4 [name] => M [pid] => 1 )
[2] => Array ( [id] => 5 [name] => C [pid] => 1 )
[3] => Array ( [id] => 8 [name] => K [pid] => 7 )
[4] => Array ( [id] => 9 [name] => B [pid] => 7 )
[5] => Array ( [id] => 12 [name] => X [pid] => 11 )
)
我希望得到以下结果:$cat = Array (
[0] => Array (
[pid]=>1,
[item] => Array(
[0] => Array ( [id] => 2 [name] => W ),
[1] => Array ( [id] => 4 [name] => M ),
[2] => Array ( [id] => 5 [name] => C )
)
),
[1] => Array (
[pid]=>7,
[item]=>Array(
[0] => Array ( [id] => 8 [name] => K ),
[0] => Array ( [id] => 9 [name] => B )
)
),
[2] => Array (
[pid]=>11,
[item]=>Array(
[0] => Array ( [id] => 12 [name] => X )
)
)
)
怎么做?$newCat=array();
数组_walk($cat,函数($v)使用(&$newCat){
$i=$v['pid'];
未结算($v['pid']);
如果(!isset($newCat[$i]))
$newCat[$i]=array('pid'=>$i,'item'=>array());
$newCat[$i]['item'][]=$v;
});
打印(数组值($newCat));
那么,您想用相同的
pid
合并所有项目吗?你试过什么了吗?我们喜欢在这里帮忙,但你需要展示你的努力。你被困在哪里?你需要帮助做什么?我们不会只为你做的。@meda:只要粘贴链接就行了。所以,我会为你链接它。请阅读工作的罚款!谢谢使者!