2015-02-05 3 views
-4

Мой массив:многомерные сумма массив в PHP

Array 
(
    [0] => Array 
     (
      [Name] => DCL 
      [Duration] => 18 
      [Min] => 31 
      [CostD] => 4 
      [CostD1] => 4 
     ) 

    [1] => Array 
     (
      [Name] => Ins 
      [Duration] => 51 
      [Min] => 1 
      [CostD] => 0.00 
      [CostD1] => 0.04 
     ) 


[2] => Array 
    (
     [Name] => N2P 
     [Duration] => 51 
     [Min] => 1 
     [CostD] => 0.04 
     [CostD1] => 0 
    ) 

[3] => Array 
    (
     [Name] => N2P 
     [Duration] => 17 
     [Min] => 2 
     [CostD] => 13.61 
     [CostD1] => 13 
    ) 

[4] => Array 
    (
     [Name] => DCL 
     [Duration] => 10 
     [Min] => 0 
     [CostD] => 5 
     [CostD1] => 5 
    ) 

[5] => Array 
    (
     [Name] => Ins 
     [Duration] => 300 
     [Min] => 5 
     [CostD] => 0.44 
     [CostD1] => 0.00 
    ) 


[6] => Array 
    (
     [Name] => RNB 
     [Duration] => 341 
     [Min] => 0 
     [CostD] => 0.44 
     [CostD1] => 0.00 
    ) 

[7] => Array 
    (
     [Name] => DCL 
     [Duration] => 20 
     [Min] => 0 
     [CostD] => 12.8 
     [CostD1] => 12 
    ) 

)

я хочу новый массив как

Array 
(
    [0] => Array 
     (
      [Name] => DCL 
      [Duration] => 48 
      [Min] => 31 
      [CostD] => 21.8 
      [CostD1] => 21 
     ) 

    [1] => Array 
     (
      [Name] => Ins 
      [Duration] => 351 
      [Min] => 1 
      [CostD] => 0.00 
      [CostD1] => 0.04 
    ) 


[2] => Array 
    (
     [Name] => N2P 
     [Duration] => 68 
     [Min] => 3 
     [CostD] => 13.16 
     [CostD1] => 13 
    ) 


[3] => Array 
    (
     [Name] => RNB 
     [Duration] => 341 
     [Min] => 0 
     [CostD] => 0.44 
     [CostD1] => 0.00 
    ) 

)

Пожалуйста help.Any помощь будет принята с благодарностью

+0

Вы пытаетесь что-нибудь сделать? –

+0

Вы что-то пробовали? – Legionar

+1

Да, но не всегда. –

ответ

2
 $sumArray = array(); 
     foreach ($data as $k => $row) { 
      if (!isset($sumArray[$row['Name']])) { 
       $sumArray[$row['Name']] = $row; 
      } else { 
       foreach ($row as $k => $v) { 
        if (is_numeric($v)) { 
         $sumArray[$row['Name']][$k]+=$v; 
        } else { 
         // decide here what to do if value is a string 
        } 
       } 
      } 
     } 
     $result = array_values($sumArray); 
+0

да работаю спасибо szapio –

0
foreach($data as $r){ 
      $values[$r['Name']]['Name']  = $r['Name']; 
      $values[$r['Name']]['Duration'] += $r['Duration']; 
      $values[$r['Name']]['Min']  += $r['Min']; 
      $values[$r['Name']]['CostD'] += $r['CostD']; 
      $values[$r['Name']]['CostD1'] += $r['CostD1']; 
    } 
    print_r(array_values($values));