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

遍历PDO查询结果集时获取商品数量总和的实现方法

如何用array_sum计算PDO查询中商品数量总和?

没问题,要实现这个需求其实很简单,我们只需要稍微调整现有代码,让它同时收集商品的数量数值,再用array_sum()计算总和即可。

问题分析

你的现有脚本只将拼接好的商品字符串(比如 t-shirt(1))存入了$items数组,数量是嵌在字符串里的,没法直接用array_sum()计算。所以核心是要单独获取每个商品的数量值,存入一个专门的数组后再求和。

修改后的完整代码

$allItems = ""; 
$items = array(); 
$quantities = array(); // 新增:用于存储每个商品的数量数值

// 修改SQL查询,同时取出quantity字段
$select_stmt = $db->prepare("SELECT CONCAT(product, ' (', quantity,')') AS ItemQty, quantity, price FROM database"); 
$select_stmt->execute(); 

while ($row = $select_stmt->fetch(PDO::FETCH_ASSOC)) { 
    $items[] = $row["ItemQty"]; 
    $quantities[] = $row["quantity"]; // 新增:将当前商品的数量存入数组
} 

$allItems = implode(", ", $items);
$totalQuantity = array_sum($quantities); // 计算所有商品的数量总和

// 可选:输出结果验证
echo "商品列表:{$allItems}<br>";
echo "总数量:{$totalQuantity}";

关键说明

  1. 新增数量数组:创建$quantities数组专门存储纯数字的数量值,避免和拼接后的字符串混淆。
  2. 调整SQL查询:在SELECT语句中加入quantity字段,这样能直接从数据库拿到数字类型的数量,不需要额外从字符串中提取。
  3. 循环收集数量:每次遍历查询结果时,同步将数量值存入$quantities数组。
  4. 用array_sum求和:array_sum()会自动遍历数组并累加所有数值,一步得到总数量。

这种方法既保留了你原来生成商品列表字符串的逻辑,又高效实现了数量求和,代码可读性也很强。

内容的提问来源于stack exchange,提问作者Michaël Thönnissen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:12:39