Php 创建新数组合并
我有一个数组:Php 创建新数组合并,php,arrays,Php,Arrays,我有一个数组: array( [0] => Array ( [d1] => Array ( ................ ) [d2] => Array ( ................ ) ) [
array(
[0] => Array
(
[d1] => Array
(
................
)
[d2] => Array
(
................
)
)
[1] => Array
(
[d1] => Array
(
................
)
[d2] => Array
(
................
)
)
)
如何创建一个新数组来合并它,因此只有d1和d2,删除索引0和1。让我们假设您的数组名是
$a
,这样我们就可以:
$result = [];
$result['d1'] = [];
$result['d2'] = [];
foreach ($a as $v) {
$result['d1'] = array_merge($result['d1'], $v['d1'])
$result['d2'] = array_merge($result['d2'], $v['d2'])
}
现在您在$result
中获得了所需的内容,这是您的解决方案
假设您的数组$menus
,过滤后新数组将$FILTEREDMENUS
。您的最终结果$filteredmenus
<?php
$menus = array(
0 =>array(
"d1" => array (
"id"=> "----",
),
"d2" => array (
"id"=> "----",
)
),
1 =>array(
"d1" => array (
"id"=> "----",
),
"d2" => array (
"id"=> "----",
)
)
);
$filteredMenu = [];
$filteredMenu['d1'] = [];
$filteredMenu['d2'] = [];
foreach ($menus as $item) {
$filteredMenu['d1'] = array_merge($filteredMenu['d1'], $item['d1']);
$filteredMenu['d2'] = array_merge($filteredMenu['d2'], $item['d2']);
}
print_r($filteredMenu);
?>
对于PHP>5.5.0您可以简单地使用
array\u column
如下
$result['d1'] = call_user_func_array('array_merge',array_column($your_array,'d1'));
$result['d2'] = call_user_func_array('array_merge',array_column($your_array,'d2'));
print_r($result);
到目前为止您尝试了什么?还不清楚您想要做什么我希望新数组成为数组([d1]=>array(……)[d2]=>array(……))但最后一个将覆盖所有数组值检查我的意思