PHP计算数组中total_products_wt字段的总和
计算PHP多维数组中total_products_wt字段的总和
嘿,我来帮你搞定这个PHP数组求和的问题!你需要把给定的多维数组里每个子数组的total_products_wt字段值加起来对吧?这里有几种实用的方法,你可以根据自己的习惯选择:
方法1:foreach循环(最直观易读)
这是最基础也最容易理解的方式,手动遍历数组里的每一项,逐个累加数值:
// 你的原始数组 $orders = [ [ 'reference' => '000000092', 'firstname' => 'utilisatrice', 'lastname' => 'test', 'total_products_wt' => '1500.000000', 'date_add' => '2018-04-04 14:53:18' ], [ 'reference' => '000000093', 'firstname' => 'Filleul', 'lastname' => 'test', 'total_products_wt' => '1500.000000', 'date_add' => '2018-04-04 14:58:33' ] ]; $totalSum = 0; foreach ($orders as $order) { // 把字符串类型的数值转成float,确保计算精准 $totalSum += (float)$order['total_products_wt']; } echo $totalSum; // 最终输出:3000.0
方法2:array_column + array_sum(简洁高效)
如果你用的是PHP 5.5及以上版本,array_column可以快速提取所有子数组中指定字段的值,再配合array_sum直接求和,一行核心代码就能搞定:
// 提取所有total_products_wt字段值组成新数组 $productTotals = array_column($orders, 'total_products_wt'); // 自动求和,array_sum会自动处理字符串转数值的操作 $totalSum = array_sum($productTotals); echo $totalSum; // 同样输出:3000.0
方法3:array_reduce(函数式编程风格)
如果你偏好函数式写法,array_reduce可以帮你通过回调函数完成累加操作,代码更紧凑:
$totalSum = array_reduce($orders, function($accumulator, $currentOrder) { $accumulator += (float)$currentOrder['total_products_wt']; return $accumulator; }, 0); // 初始值设为0 echo $totalSum; // 输出:3000.0
小提示
- 你的
total_products_wt是字符串格式的数值,建议转成float类型再计算,避免潜在的类型转换问题 - 如果数组里可能存在缺少
total_products_wt字段的子数组,可以在代码里加个判断,比如isset($order['total_products_wt'])再进行累加,防止出现报错
内容的提问来源于stack exchange,提问作者Christopher
相关产品推荐
相关产品推荐

