PHP中的数组求和计数行

时间:2019-01-25 10:32:17

标签: php arrays count sum array-sum

我有一个函数getData返回:

    array:4 [▼
  0 => array:1 [▼
    0 => "5689.01"
  ]
  1 => array:1 [▼
    0 => "5689.01"

  ]
  2 => array:1 [▼
    0 => "0.0"
  ]
  3 => array:1 [▼
    0 => "5665.11"
   ]
]

我需要对每行触发一次呼叫并返回列出的所有结果的总SUM的值进行计数(本次是4次,如上所述)的行数。

 $rows = $this->get('app')->getData();

 if($rows) {
        foreach ($rows as $row) {
            $sumOfAll = 0;
            $total = count($rows);
            $sumOfAll += array_sum(array($row[0] * $total));

            dump($sumOfAll);die;
    }
}

我总是得到错误的总和,在这种情况下是22756.04。

2 个答案:

答案 0 :(得分:3)

使用array_sum和array_column来获取值并对它们求和。
然后使用count()获得计数。

$sum = array_sum(array_column($arr, 0));
$count = count($arr);

echo "count is ". $count . " And sum is " . $sum;

https://3v4l.org/HFbgc

答案 1 :(得分:0)

要固定总和值,您需要将$sumOfAll变量移出foreach的外侧

从此更改您的代码:

foreach ($rows as $row) {
    $sumOfAll = 0;
    $total = count($rows);
    $sumOfAll += array_sum(array($row[6] * $total));

    dump($sumOfAll);die;
}

对此:

$sumOfAll = 0;
foreach ($rows as $row) {
    $total = count($rows);
    $sumOfAll += array_sum(array($row[6] * $total));
}
dump($sumOfAll);die;