0

我是 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 )
4

4 回答 4

3

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

$exploded =  explode ( "," , $amount_array);
var_dump($exploded);
于 2015-04-15T18:05:22.980 回答
2

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

您需要使用爆炸功能:

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

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

$amount_array = explode(',', $amount);
echo array_sum($amount_array);
于 2015-04-15T18:07:39.710 回答
2

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

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

尝试

$amount_array = explode(',',$amount);
于 2015-04-15T18:09:07.417 回答
1

您无法按照您的意图初始化数组。您正在传递一个逗号分隔的字符串,这只是一个参数。PHP 不会自动将该字符串转换为单独的参数。

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

$amount_array = explode( ',', $amount ); // now $amount_array is the array you intended
于 2015-04-15T18:13:18.270 回答