php array_sum 只返回第一个值

php array_sum returning first value only

我是 php 的新手,但这似乎是我忽略了一些完全基本的东西?

我在数据库列中有一些值,它们以逗号分隔,如下所示: 1,2,3

当我尝试获取值的总和时,我希望 array_sum 的回显为 6,但我只返回第一个值,即。 “1”

echo $amount; //Gives 1,2,3 etc.

$amount_array = array($amount);
echo array_sum($amount_array); //Only prints "1"

print_r($amount); // shows 1,2,3
print_r($amount_array); // shows Array ( [0] => 1,2,3 )

这是一个字符串而不是数组,您必须使用 explode 函数拆分它:

$exploded =  explode ( "," , $amount_array);
var_dump($exploded);

要使用 array_sum 需要将字符串转换为数组

您需要使用explode函数:

$amount_array = explode(',', $amount);

所以你的总代码应该是这样的:

$amount_array = explode(',', $amount);
echo array_sum($amount_array);

array_sum() 通过将数组中的值相加来工作。您的数组中只有一个键=>值对:键0,值为1,2,3

如果你有一个逗号分隔的列表,并希望它是一个数组,我会使用 explode() 函数将列表转换为正确的键=>值对 array_sum()会期待。

尝试

$amount_array = explode(',',$amount);

您无法按预期方式初始化数组。您传递的是一个逗号分隔的字符串,它只是一个参数。 PHP 不会自动将该字符串转换为单独的参数。

为了将逗号分隔的字符串转换为单个值的数组,您可以使用 explode() 之类的函数拆分字符串,该函数以定界符和字符串作为参数,并且 returns 分隔符分隔值的数组。

$amount_array = explode( ',', $amount ); // now $amount_array is the array you intended