2013-08-01 12 views
1

我有2列如下: -PHP數組索引加成 - 不同層次

$m_aggregate = array(
      'weighted' => array (40000, 
        30000, 
        90000, 
        0), 
     'unweighted' => array (3000, 
        2000, 
        6000, 
        0), 
     'weighted_sum' => 160000, 
     'unweighted_sum' => 11000 
    ); 

$f_aggregate = array(
      'weighted' => array (7000, 
          5000, 
          9000, 
          0), 
     'unweighted' => array (500, 
          300, 
          600, 
          0), 
     'weighted_sum' => 21000, 
     'unweighted_sum' => 1400 
    ); 

,並希望總結的各個元素,所以我得到

$tot_aggregate = array(
      'weighted' => array (47000, 
          35000, 
         99000, 
        0), 
     'unweighted' => array (3500, 
          2300, 
       6600, 
       0), 
     'weighted_sum' => 181000, 
     'unweighted_sum' => 12400 
    ); 

我已經嘗試使用

function sum($arr1, $arr2) 
{ 
    return($arr1+$arr2); 
} 

$tot_aggregate = array_map("sum", $m_aggregate, $f_aggregate); 

print_r($tot_aggregate); 

但是這給了weighted_sum和unweighted_sum,而不是數組中的加權和未加權數組。

任何人都可以幫忙嗎? TIA 雅

回答

0
function sum($arr1, $arr2) 
{ 
    return is_array($arr1) && is_array($arr2) 
      ? array_map("sum", $arr1, $arr2) 
      : ($arr1 + $arr2); 

} 

$tot_aggregate = sum($m_aggregate, $f_aggregate); 

print_r($tot_aggregate); 

輸出:

Array 
(
    [0] => Array 
     (
      [0] => 47000 
      [1] => 35000 
      [2] => 99000 
      [3] => 0 
     ) 

    [1] => Array 
     (
      [0] => 3500 
      [1] => 2300 
      [2] => 6600 
      [3] => 0 
     ) 

    [2] => 181000 
    [3] => 12400 
) 
+0

索姆 - 有沒有辦法讓數組鍵名 '加權', '加權', 'weighted_sum', 'unweighted_sum' 在使用你的功能需要輸出? – jas105