PHP是否有可能对数组的元素求和?

时间:2014-03-11 13:58:58

标签: php arrays sum

我有一个包含多组数据的数组。

是否可以对数组的元素(不是全部)求和。例如,是否可以将数组中的前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 )

1 个答案:

答案 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

Demo