对多维数组的每一行求和

时间:2016-04-13 16:57:14

标签: php arrays multidimensional-array

我想对多维数组的每一行求和:

$number = array
(
    array(0.3,0.67, 0.3),
    array(0.3,0.5,1),
    array(0.67,0.67,0.3),
    array(1,0.3,0.5)
);

我想要的结果是这样的:

row1 = 1.27
row2 = 1.8
row3 = 1.64
row4 = 1.8

我已经尝试过这段代码:

for($i = 0; $i < 4; $i++) {
    for($j = 0; $j < 5; $j++) {
        $sumresult[] = array_sum($number[$i][$j]);
    }
}

但它似乎是这样的错误:

  

警告:array_sum()期望参数1为数组,在xxxx中给出双倍

3 个答案:

答案 0 :(得分:2)

array_sum需要数组而不是值。这样做:

for($i = 0; $i < 4; $i++) {
    $sumresult[] = array_sum($number[$i]);
}

答案 1 :(得分:0)

因为你传递的是一个值,而不是包含它的数组。

一个正确的解决方案是:

$sumResult = array();

foreach($number as $values){
    $sumResult []= array_sum($values);
}

print_r($sumResult);

应该做的伎俩;)

答案 2 :(得分:0)

array_sum()函数映射到数组以便对内部数组求和更容易:

$sumresult = array_map('array_sum', $number);