php array_sum仅返回第一个值

时间:2015-04-15 18:02:30

标签: php array-sum

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

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

当我尝试获取值的总和时,我希望array_sum的回显为6,但我只返回第一个值ie。 " 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 )

4 个答案:

答案 0 :(得分:3)

字符串不是数组,您必须使用explode函数将其拆分:

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

答案 1 :(得分:2)

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

您需要使用explode功能:

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

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

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

答案 2 :(得分:2)

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

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

尝试

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

答案 3 :(得分:1)

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

为了将逗号分隔的字符串转换为单个值的数组,您可以使用类似explode()的函数拆分字符串,该函数将分隔符和字符串作为其参数,并返回一个数组分隔符分隔值。

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