2017-02-02 78 views
2

我有一個多維數組,我想刪除頂級數組並將其所有子數組合併到一個數組中。 下面是我的數組:刪除頂級數組並將子數組合併成一個

$arr = [KEY1] => Array 
      (
      [0] => Array 
       (
        [Feb] => 120 
       ) 

      [1] => Array 
       (
        [Jan] => 230 
       ) 
      [3] => Array 
       (
        [Mar] => 340 
       ) 

     ) 

     [KEY2] => Array 
     (
      [0] => Array 
       (
        [Feb] => 12 
       ) 

      [1] => Array 
       (
        [Jan] => 23 
       ) 
      [3] => Array 
       (
        [Mar] => 34 
       ) 
     ) 

我需要安排和排序此陣象下面這樣:
輸出:

[KEY1] => Array 
       (
        [Jan] => 230, 
        [Feb] => 120, 
        [Mar] => 340 
       ) 
[KEY2] => Array 
       (
        [Jan] => 23, 
        [Feb] => 12, 
        [Mar] => 34 
       ) 

我用

call_user_func_array( 'array_merge',$ ARR );但不工作。

請建議任何明智的方式來做到這一點。

感謝

+1

檢查我的編輯部分進行排序的功能 – rahulsm

回答

1

你可以試試下面的這個簡單的方法,

 $arr = [ 
     'key1' =>[ 
      0 => ["feb" => 123], 
      1 => ["dev" => 213], 
      2 => ["jan" => 111], 
     ], 
     'key2' =>[ 
      0 => ["feb" => 132], 
      1 => ["dev" => 321], 
      2 => ["jan" => 555], 
     ], 
     ]; 
     $result = []; 
     foreach($arr as $k => $v){ 
      foreach($v as $k1 => $v1){ 
       foreach($v1 as $k2 => $v2) 
       $result[$k][$k2] = $v2; 
      } 
     } 
     print_r($result); 

希望這將解決您的問題。

編輯

這是你的排序功能。

function sortNestedArray(&$a) 
{ 
    sort($a); 
    for ($i = 0; $i < count($a); $i++) { 
     if (is_array($a[$i])) { 
      sortNestedArray($a[$i]); 
     } 
    } 
    return $a; 
} 
$a = sortNestedArray($result); 
print_r($a); 
+0

謝謝兄弟#rahul_m – nishant

+0

你最歡迎! – rahulsm

相關問題