Вычисление данных из массива

У меня этот массив:

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 ) ) ) 

«kw» – это номер недели, а «hID» – это идентификатор дома. Теперь я хочу добавить все «anzahl_betten», «zugange_dauerpflege», … xt из одного «kw» из каждого дома вместе. Поэтому, в конце концов, я просто хочу иметь один массив-вход для каждого kw (и все дома суммируются). Например:

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

Как я мог это понять?

 $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 = 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 = 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 = 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» представляют собой массив домов. Я не проверял. Это нормально ?