我有一个包含多组数据的数组。
是否可以对数组的元素(不是全部)求和。例如,是否可以将数组中的前5组数据相加,然后接着是7,然后是接下来的3等。
编辑:
我尝试过以下但却没有高兴:
for ($p=0; $p<=8; $p++){
$tot = 0;
$resp = 0;
$tot = $tot + $row4['Total_Staff'];
$resp = $resp + $row4['Total_Resp'];
}
显然我没有正确使用它!
数组输出(print_r输出):
Array ( [department] => Central>ACME>BusDev [Total_Staff] => 4 [Total_Resp] => 0 )
Array ( [department] => Central>ACME>ChemDev [Total_Staff] => 7 [Total_Resp] => 0 )
Array ( [department] => Central>ACME>Admin [Total_Staff] => 1 [Total_Resp] => 0 )
Array ( [department] => Central>ACME>Chemistry [Total_Staff] => 4 [Total_Resp] => 0 )
答案 0 :(得分:4)
使用array_splice()
从数组中删除$numOfElems
个元素并返回它们。使用array_sum()
计算总和。重复此过程,直到数组为空。
$array = array(/* your array */)
$sets = array(5,7,3);
$sum_arr = array();
foreach ($sets as $numOfElems) {
while (!empty($array)) {
$elem_arr = array_splice($array, 0, $numOfElems);
$sum[] = array_sum($elem_arr);
}
}
print_r($sum_arr);
这将使用相同的集重复此过程,直到它到达数组的末尾。如果您只想要count($sets)
次迭代,那么也许您可以将while
更改为if
。