PHP数组求和问题

PHP数组求和问题,php,arrays,Php,Arrays,我试图将MySQL数据转换为一个数组,然后计算该数组的和 $weight = ($product['av_id_1'])*$val; // get attribute values $weightsub = explode(" ", $weight); // convert string to array echo array_sum($weightsub); 我得到的是一个输出,但它不是我期望的,而是一个单个整数,它的间隔整数,如“30 40 50” 我哪里做错了 谢谢 $weightsub

我试图将MySQL数据转换为一个数组,然后计算该数组的和

$weight = ($product['av_id_1'])*$val; // get attribute values
$weightsub = explode(" ", $weight); // convert string to array
echo array_sum($weightsub);
我得到的是一个输出,但它不是我期望的,而是一个单个整数,它的间隔整数,如“30 40 50”

我哪里做错了

谢谢

$weightsub = explode(" ", $product['av_id_1']); // convert string to array
echo array_sum($weightsub)*$val;
首先,您需要使用
explode
提取所有数字。然后应用
array\u sum
对数组中的所有数字求和,并将总和乘以
$val

如果这不符合预期,您可以通过对每个变量或结果使用
echo
print\r
轻松进行一些基本调试:

echo '$product[av_id_1] = <br>';
print_r($product['av_id_1']);
$weightsub = explode(" ", $product['av_id_1']); // convert string to array
echo '$weightsub = <br>';
print_r($weightsub);
echo "<br>\$val = $val<br>";
echo 'Sum = ' . array_sum($weightsub) . '<br>';
echo array_sum($weightsub)*$val;
echo'$product[av_id_1]=
; 打印($product['av_id_1']); $weightsub=explode(“,$product['av_id_1']);//将字符串转换为数组 回显“$weightsub=
”; 打印(重量分包); 回声“
\$val=$val
”; 回显'Sum='。数组_和($weightsub)。'
'; 回波阵列总和($weightsub)*$val;
product['av\u id\u 1']的值是多少?您将
$product['av\u id\u 1']
乘以
$val
。因此,我发现结果
$weight
(一个
int
float
)中不太可能有空格,您可以用它来
分解()
。此外,在更仔细地阅读您的问题之后,我认为您对数组值的乘法方式存在误解。如果
$product['av_id_1']
应该表示一个数组:您不能像这样一次将所有数组元素值相乘。如果它是一个表示一个由空格分隔的整数组成的字符串:你也不能像那样乘以它们的值。你需要提供一个可复制的例子。使用提供
$product['av_id_1']
$val
的值,这将为您提供表示变量的有效PHP代码。这样我们可以重现您的问题并帮助您调试它@fireeyedboy是正确的,尽管对这两个操作数执行乘法运算时,$weight始终是一个数字,但结果必须是数字类型。因此,我无法理解您是如何从数组_sum中得到一个字符串的,该数组读取“30 40 50”。var_export返回的$product['av_id_1']的输出是“3”“2”,但不幸的是仍然无法工作。您的代码输出的值与我的相同。
echo print\r($product['av\u id\u 1')的输出是什么?在我更新的答案中尝试脚本的第二个版本。它可以帮助您找到问题所在。$weightsub=Array([0]=>3)$val=1 Sum=3$weightsub=Array([0]=>2)$val=1 Sum=2$weightsub=Array([0]=>6)$val=1 Sum=6$weightsub=Array([0]=>4)$val=1 Sum=4$weightsub=Array([0]=>5)$val=1 Sum=5谢谢,但还是不明白问题出在哪里。