创建新的数组合并

时间:2015-10-03 05:42:17

标签: php arrays

我有一个数组:

array(
     [0] => Array
        (
              [d1] => Array
              (
              ................ 
              )
              [d2] => Array
              (
              ................
              )
        )
    [1] => Array
        (
              [d1] => Array
              (
              ................ 
              )
              [d2] => Array
              (
              ................
              )
        )
)

如何创建一个新数组来合并它,所以只有d1和d2,删除索引0和1.

3 个答案:

答案 0 :(得分:0)

我们假设您的数组名称为$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中找到所需的内容。

答案 1 :(得分:0)

这是您的解决方案visit here

假设您的数组$menus和过滤后的新数组将为$filteredMenu。您的最终结果$filteredMenu

<?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);
?>

答案 2 :(得分:0)

对于PHP&gt; 5.5.0 您可以像{/ p>一样使用array_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);

Demo