如何计算数组项的总值

How to calculate the total values of array items

我正在尝试获取计算每个项目的第 4 部分的总量,但是 array_sum 无法使用我的代码,当我回显 $parts 时,我只得到一个数字,即 4 .. 这是我的代码:

$test = "2021/05/10,0,0,0,1|2021/05/11,0,0,0,2|2021/05/0,0,0,0,3|2021/05/13,0,0,0,4";
$test = explode("|", $test);

foreach($test as $key => $value){
    $parts = explode(",", $test[$key])[4];
}

echo array_sum($parts);

你的问题是 $parts 是一个字符串并且每次迭代都会被覆盖,所以将它附加到一个数组中:

$parts[] = explode(",", $test[$key])[4];

但为了好玩:

preg_match_all('/,(\d+)(\||$)/', $test, $matches);
echo array_sum($matches[1]);
  • 匹配一个,,然后在第1组()中匹配并捕获任意数量的数字\d+,后跟|或字符串结尾$

dates数组上使用array_map(callback, array),由|展开。并通过 , 再次分解它,只为每个 date 获取位于 4.

位置的最后一部分
$dates = "2021/05/10,0,0,0,1|2021/05/11,0,0,0,2|
         2021/05/0,0,0,0,3|2021/05/13,0,0,0,4";

$parts = array_map(fn($part)=>explode(",", $part)[4], explode("|", $dates));
echo "<pre>";
print_r($parts);

打印:

/*
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
*/

这些部分的总和:

echo array_sum($parts); //10