【问题标题】:Sum each row of a multidimensional array对多维数组的每一行求和
【发布时间】:2016-04-13 16:57:14
【问题描述】:

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

$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 中给出双精度

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我已经坚持了一个小时! :)
    • 很高兴能帮到你:)
    【解决方案2】:

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

    一个正确的解决方案是:

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

    应该做的伎俩;)

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-11
        • 2014-10-20
        • 1970-01-01
        • 1970-01-01
        • 2016-02-13
        • 2021-08-24
        • 2015-10-30
        相关资源
        最近更新 更多