我有一个包含多组数据的数组。
是否可以对数组的元素(不是全部)求和。例如,是否有可能对数组中的前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 )
使用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
。