You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP列求和异常:输出数组但求和结果为0的问题咨询

嘿,我来帮你捋捋这个问题~

你输出的数组其实已经包含了正确的求和值 5.99,但最后显示 Price: 0,核心问题是你没有正确从二维数组中取出目标值,或者变量赋值环节出了疏漏。下面分几种常见情况拆解:

1. PHP取值逻辑错误

从你给出的输出 Array ( [0] => Array ( [OrderPrice] => 5.99 ) ) 能看出来,查询结果是一个二维数组。如果你的代码是直接尝试从外层数组取值,比如:

// 错误示例:直接取外层数组的OrderPrice键
$price = $result['OrderPrice'];
echo "Price: " . $price;

那肯定拿不到值,因为 OrderPrice 藏在索引为0的内层数组里。正确的取值方式应该是:

// 正确:先取外层索引0的数组,再取OrderPrice键
$price = $result[0]['OrderPrice'];
echo "Price: " . $price; // 输出 Price: 5.99

或者换用fetch()替代fetchAll(),直接拿到一维数组,取值更直观:

$row = $pdo->query($sql)->fetch(PDO::FETCH_ASSOC);
$price = $row['OrderPrice'];
echo "Price: " . $price;

2. 变量初始化后未正确赋值

如果你提前把$price初始化为0,但后续忘了将数组中的值赋给它,比如:

$price = 0; // 初始值设为0
$result = $pdo->query($sql)->fetchAll();
// 遗漏了 $price = $result[0]['OrderPrice']; 这一步
echo "Price: " . $price; // 自然输出0

这种情况只要补上赋值语句就能解决问题。

3. 额外排查:SQL语句(可能性较低)

虽然你已经在数组里看到了5.99,说明SUM计算是正常的,但如果后续遇到类似问题,可以检查下OrderPrice字段是否为数值类型,或者是否包含NULL值(SUM会自动忽略NULL,但字符串类型的数值可能导致计算异常)。

按照上面的方法调整取值逻辑,应该就能顺利拿到正确的求和值啦~

内容的提问来源于stack exchange,提问作者Ben Foster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:23