2013-11-18 4 views
0

у меня есть этот массив:Вычислить данные из массива

Array 
(
[0] => Array 
    (
     [0] => Array 
      (
       [id] => 1 
       [kw] => 45 
       [anzahl_betten] => 100 
       [zugange_dauerpflege] => 1 
       [zugange_kurzzeitpflege] => 1 
       [abgange_dauerpflege_sterbefalle] => 1 
       [abgange_dauerpflege_auszuge] => 1 
       [abgange_kurzzeitpflege] => 1 
       [wechsel_kurz_dauer] => 1 
       [anzahl_tage] => 1 
       [geplante_einzuge] => 5 
       [hID] => 9 
      ) 

     [1] => Array 
      (
       [id] => 11 
       [kw] => 46 
       [anzahl_betten] => 100 
       [zugange_dauerpflege] => 0 
       [zugange_kurzzeitpflege] => 0 
       [abgange_dauerpflege_sterbefalle] => 0 
       [abgange_dauerpflege_auszuge] => 0 
       [abgange_kurzzeitpflege] => 0 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 0 
       [geplante_einzuge] => 1 
       [hID] => 9 
      ) 

     [2] => Array 
      (
       [id] => 12 
       [kw] => 47 
       [anzahl_betten] => 100 
       [zugange_dauerpflege] => 1 
       [zugange_kurzzeitpflege] => 1 
       [abgange_dauerpflege_sterbefalle] => 0 
       [abgange_dauerpflege_auszuge] => 1 
       [abgange_kurzzeitpflege] => 0 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 0 
       [geplante_einzuge] => 0 
       [hID] => 9 
      ) 

    ) 

[1] => Array 
    (
     [0] => Array 
      (
       [id] => 19 
       [kw] => 45 
       [anzahl_betten] => 100 
       [zugange_dauerpflege] => 1 
       [zugange_kurzzeitpflege] => 0 
       [abgange_dauerpflege_sterbefalle] => 1 
       [abgange_dauerpflege_auszuge] => 0 
       [abgange_kurzzeitpflege] => 1 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 1 
       [geplante_einzuge] => 0 
       [hID] => 11 
      ) 

     [1] => Array 
      (
       [id] => 20 
       [kw] => 46 
       [anzahl_betten] => 100 
       [zugange_dauerpflege] => 0 
       [zugange_kurzzeitpflege] => 2 
       [abgange_dauerpflege_sterbefalle] => 3 
       [abgange_dauerpflege_auszuge] => 0 
       [abgange_kurzzeitpflege] => 2 
       [wechsel_kurz_dauer] => 3 
       [anzahl_tage] => 0 
       [geplante_einzuge] => 2 
       [hID] => 11 
      ) 

     [2] => Array 
      (
       [id] => 21 
       [kw] => 47 
       [anzahl_betten] => 99 
       [zugange_dauerpflege] => 0 
       [zugange_kurzzeitpflege] => 0 
       [abgange_dauerpflege_sterbefalle] => 1 
       [abgange_dauerpflege_auszuge] => 2 
       [abgange_kurzzeitpflege] => 0 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 1 
       [geplante_einzuge] => 2 
       [hID] => 11 
      ) 

    ) 

[2] => Array 
    (
     [0] => Array 
      (
       [id] => 22 
       [kw] => 45 
       [anzahl_betten] => 50 
       [zugange_dauerpflege] => 0 
       [zugange_kurzzeitpflege] => 0 
       [abgange_dauerpflege_sterbefalle] => 0 
       [abgange_dauerpflege_auszuge] => 1 
       [abgange_kurzzeitpflege] => 1 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 0 
       [geplante_einzuge] => 0 
       [hID] => 12 
      ) 

     [1] => Array 
      (
       [id] => 23 
       [kw] => 46 
       [anzahl_betten] => 51 
       [zugange_dauerpflege] => 0 
       [zugange_kurzzeitpflege] => 0 
       [abgange_dauerpflege_sterbefalle] => 0 
       [abgange_dauerpflege_auszuge] => 0 
       [abgange_kurzzeitpflege] => 0 
       [wechsel_kurz_dauer] => 0 
       [anzahl_tage] => 0 
       [geplante_einzuge] => 0 
       [hID] => 12 
      ) 

     [2] => Array 
      (
       [id] => 24 
       [kw] => 47 
       [anzahl_betten] => 51 
       [zugange_dauerpflege] => 1 
       [zugange_kurzzeitpflege] => 1 
       [abgange_dauerpflege_sterbefalle] => 1 
       [abgange_dauerpflege_auszuge] => 1 
       [abgange_kurzzeitpflege] => 1 
       [wechsel_kurz_dauer] => 1 
       [anzahl_tage] => 1 
       [geplante_einzuge] => 1 
       [hID] => 12 
      ) 

    ) 

) 

«кВт» есть номер недели и «Хид» является идентификатором дома. Теперь я хочу добавить все «anzahl_betten», «zugange_dauerpflege», ... xt из одного «kw» из каждого дома вместе. Так что, в конце концов, я просто хочу иметь один массив-вход для каждого kw (и все дома суммируются). E-mail:

Array ([0] => Array ([kw] => 45 [anzahl_betten] => 250 [zugange_dauerpflege] => 2 ...)) 
     [1] => Array ([kw] => 46 [anzahl_betten] => 249 [zugange_dauerpflege] => 1 ...)) 

Как я мог это реализовать?

ответ

0
$final = array(); 
foreach($your_array as $index1 => $sub_array1) 
{ 
    foreach($sub_array1 as $index2 => $final_sub_array) 
    { 
     // I think you don't care about $index1 and $index2 ? 
     unset($final_sub_array['id']);  // nothing to do whith this one ? 
     $kw = $final_sub_array['kw']; 
     unset($final_sub_array['kw']); 
     unset($final_sub_array['hID']); // nothing to do whith this one ? 

     // Now, $final_sub_array contains only keys 'anzahl_betten' .. 'geplante_einzuge' 
     foreach($final_sub_array as $house => $value) 
     { 
      if(isset($final[$kw][$house])) 
       $final[$kw][$house] += $value; 
      else 
       $final[$kw][$house] = $value; 
     } 
    } 
} 

Ключи $ final - это «kw», а значения каждого «kw» представляют собой массив домов. Я не проверял. Это нормально ?

+0

спасибо! Это работает так, как должно! –

Смежные вопросы