从数组中的数据计算 [英] Calculate data from an array
本文介绍了从数组中的数据计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个数组:
阵列
(
[0] =>排列
(
[0] =>排列
(
[ID] => 1
[千瓦] => 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] =>五
[HID] => 9
) [1] =>排列
(
[ID] => 11
[千瓦] => 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] =>排列
(
[ID] => 12
[千瓦] => 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] =>排列
(
[0] =>排列
(
[ID] => 19
[千瓦] => 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] =>排列
(
[ID] => 20
[千瓦] => 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] =>排列
(
[ID] => 21
[千瓦] => 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] =>排列
(
[0] =>排列
(
[ID] => 22
[千瓦] => 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] =>排列
(
[ID] => 23
[千瓦] => 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] =>排列
(
[ID] => 24
[千瓦] => 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
) ))
千瓦是周数和藏,是一所房子的ID。
我现在想从每个房子全部添加anzahl_betten,zugange_dauerpflege,... XT从一个千瓦起来。
所以,最后我只想有一个阵列入境每个千瓦(和所有的房子相加)。
例如:
阵列([0] =>数组([KW] => 45 anzahl_betten] => 250 zugange_dauerpflege] => 2 ...))
[1] =>阵列([千瓦] => 46 [anzahl_betten] => 249 [zugange_dauerpflege] =→1 ...))
我怎么能认识到这一点?
解决方案
$最终=阵列();
的foreach($ your_array为$索引1 => $ sub_array1)
{
的foreach($ sub_array1为$索引2 => $ final_sub_array)
{
//我觉得你不关心$索引1和$索引2?
未设置($ final_sub_array ['身份证']); //无关蒙山这一个?
$千瓦= $ final_sub_array ['千瓦'];
未设置($ final_sub_array ['千瓦']);
未设置($ final_sub_array ['藏']); //无关蒙山这一个? //现在,$ final_sub_array只包含键'anzahl_betten'..'geplante_einzuge
的foreach($ final_sub_array为$房子=> $值)
{
如果(使用isset($决赛[$千瓦] [$家))
$最后的[$千瓦] [$房子] + = $价值;
其他
$最后的[$千瓦] [$房子] = $价值;
}
}
}
$最后的键是千瓦,并且每个KW的值是房屋的阵列。我没有测试它。是否确定?
i have this array:
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" is the week number and "hID" is the ID of a house. I now want to add all "anzahl_betten", "zugange_dauerpflege", ...xt from one "kw" from every house together. So in the end i just want to have one Array-Entry for each kw (and all houses are summed). E.g.:
Array ( [0] => Array ( [kw] => 45 [anzahl_betten] => 250 [zugange_dauerpflege] => 2 ...) )
[1] => Array ( [kw] => 46 [anzahl_betten] => 249 [zugange_dauerpflege] => 1 ...) )
How could i realize this?
解决方案
$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;
}
}
}
Keys of $final are the "kw", and values of each "kw" is an array of houses. I did not test it. Is it OK ?
这篇关于从数组中的数据计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文