本文详解如何在php中遍历嵌套查询结果生成的多个一维数组,并准确累加其中全部数值,避免因变量作用域错误导致的累计失效问题。
在实际开发中,常需对多次数据库查询返回的多个数值数组进行汇总计算(如订单总价、周报毛利等)。从示例可见,priceTotal() 方法为每个商品ID返回一个包含若干价格项的一维数组(例如 [420, 200]),而外层循环会多次调用该方法,最终产生多个独立数组。目标是将所有数组中的所有元素相加,得到全局总金额。
关键问题在于:原始代码将 $totalPrice = 0 初始化语句错误地置于 foreach($weeklyGross as $row) 循环内部,导致每次处理新订单行时,累加器被重置为零,仅保留最后一次循环的局部结果。
✅ 正确做法是将累加器初始化在最外层作用域,确保其生命周期覆盖全部迭代: