Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建新数组合并_Php_Arrays - Fatal编程技术网

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(……))但最后一个将覆盖所有数组值检查我的意思