-3

I have an array:

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

How to create a new array to merge it, so only d1 and d2, remove the index 0 and 1.

Rizier123
  • 58,877
  • 16
  • 101
  • 156

3 Answers3

0

Let us say your array name is $a, so we can have:

$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'])
}

Now you have what you want in $result.

Musa Haidari
  • 2,109
  • 5
  • 30
  • 53
0

here is your solution visit here

Suppose your array $menus and after filter new array will be $filteredMenu . Your final result $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);
?>
Lemon Kazi
  • 3,308
  • 2
  • 37
  • 67
0

For PHP > 5.5.0 you can simply use array_column like as

$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

Narendrasingh Sisodia
  • 21,247
  • 6
  • 47
  • 54