在MultiDimensional Array中求和某些indice值

时间:2014-03-11 17:11:27

标签: php multidimensional-array sum

我有以下内容:

Array 
( 
    [0] => Array 
    ( 
        [department] => Central>ACME>BusDev 
        [Total_Staff] => 4 
        [Total_Resp] => 0 
    ) 
)

阵列中有超过150个。

例如,我可以使用以下内容轻松总结Total_StaffTotal_Resp

foreach($arr as $num => $values) {
    $sum_staff += $values[ 'Total_Staff' ];
    $sum_resp += $values[ 'Total_Resp' ];
}

然而,我需要做的只是对数组中的元素求和,例如我需要将Total_Staff 0和7或12和58之间的Total_respindexes相加。

不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

这是你需要的吗

foreach($arr as $num => $values) {
    if(($num >= 0 && $num <= 7) || ($num >= 12 && $num <= 58))
        $sum += $values[ 'Total_Staff' ];
}

答案 1 :(得分:0)

使用for循环将是解决此问题的方法:

 $start = 12;
 $end = 58;
 $sum_total_staff = 0;
 $sum_total_resp = 0;

 for( $i = $start; $i <= $end; $i++ ) {       
     $sum_total_staff += $arr[$i]["Total_Staff"];   
     $sum_total_resp += $arr[$i]["Total_Resp"];   
 }

答案 2 :(得分:0)

我想说使用这两个功能来切片&amp;合并数组。它将获得8个数组,其中索引0-7(包括0和7)和第二个数组相同。如果你想要没有0和7,它将使用参数1,6,所以array_slide($arr, 1, 6);等等。

$new_arr1 = array_slice($arr, 0, 8);
$new_arr2 = array_slice($arr, 12, 47);
$arr = array_merge($new_arr1, $new_arr2);