我在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 )
答案 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