2013-03-08 26 views
2

我需要总和'in'和'ou',[a]到[t] 数组。PHP:总结多维数组的不同值

Array 
(
[1] => Array 
    (
     [in] => Array 
      (
       [a] => 3 
       [b] => 0 
       [c] => 0 
       [d] => 0 
       [e] => 0 
       [f] => 0 
       [o] => 0 
       [t] => 3 
      ) 

     [ou] => Array 
      (
       [a] => 0 
       [b] => 0 
       [c] => 1 
       [d] => 0 
       [e] => 0 
       [f] => 0 
       [o] => 0 
       [t] => 1 
      ) 
    ) 
[2] => Array 
    (
     [in] => Array 
      (
       [a] => 0 
       [b] => 0 
       [c] => 0 
       [d] => 0 
       [e] => 0 
       [f] => 0 
       [o] => 0 
       [t] => 0 
      ) 

     [ou] => Array 
      (
       [a] => 0 
       [b] => 0 
       [c] => 0 
       [d] => 1 
       [e] => 2 
       [f] => 0 
       [o] => 0 
       [t] => 3 
      ) 
    ) 
) 

以下是我如何计算总数'in'+'ou'。然而,当涉及到'in'a,b,c,d,e,f,t和'ou'a,b,c,d,e,f的个体总数时,我似乎陷入了一种尴尬的境地。 ,T。

//get day total 
foreach($arr as $array){ 
    foreach($array as $inou){ 
     foreach(array_keys($inou) as $value){ 
      if(isset($total[$value])){ 
       $total[$value] += $inou[$value]; 
      }else{ 
       $total[$value] = $inou[$value]; 
      } 
     } 
    } 
} 

输出应该是这个样子

in(
[a] => 3 
[b] => 0 
[c] => 0 
... 
[t] => 3 
) 
ou(
[a] => 0 
[b] => 0 
[c] => 1 
[d] => 1 
[e] => 2 
[f] => 0 
[t] => 4 
) 

回答

2

这应该让你开始:

 $sumIN = 0; 
     $sumOU = 0; 
     foreach($arr as $innerArr) 
     { 
      $sumIN += array_sum($innerArr['in']); 
      $sumOU += array_sum($innerArr['ou']); 
     } 
+0

我需要每道达尔(A =>总,B =>总,.. 。)和ou(a => total,b => total,...) – 2013-03-08 23:11:44