首页 > 解决方案 > 在 Foreach 循环中获取值的总和

问题描述

我有一个 foreach 循环,它从具有动态行的表中添加所有行(为上一页的订单中您想要的每个新产品添加行 - 有时可能是 3 个产品,有时可能是 23 个产品)创建 pdf 购买订单(使用 mpdf)。我对每行显示(产品 x 数量 = 总)成本的行项目没有任何问题。我的问题是将这些总计纳入采购订单底部的单个总成本。

创建的 PDF 示例:

Product 1     $2 x 3 = $6
Product 2     $4 x 2 = $8
Product 3     $6 x 1 = $6

一切正常。这是 foreach 循环的代码。

   <?php

foreach ($product as $a => $b) {

    $prod_cost1[$a] = (("$qty[$a]") * ("$prod_cost[$a]"));

    echo "
        <tr>
            <td>$product[$a] &nbsp;</td>
            <td>$qty[$a] &nbsp;</td>
            <td>$prod_cost1[$a] &nbsp;</td>
        </tr>";
}

?>

我只是需要以某种方式总计所有 $prod_cost1 并能够在页面上的某处显示它。谢谢您的帮助!

标签: php

解决方案


  • 只需在循环开始之前再创建一个变量并在循环内递增它。
  • 在处理数字时使用正确的类型转换是一个好习惯(尤其是在像 PHP 这样的弱类型语言中)。因此,我已将产品成本类型转换为float.

您可以使用以下代码:

// Initialize the total sum varaible
$total_sum = 0;

foreach($product as $a => $b) { 

    $prod_cost1[$a] = (("$qty[$a]") * ("$prod_cost[$a]"));

    // update the total sum (typecasting the product cost to float)
    $total_sum += (float)$prod_cost1[$a];

    echo"
         <tr>
         <td>$product[$a] &nbsp;</td>
         <td>$qty[$a] &nbsp;</td>
         <td>$prod_cost1[$a] &nbsp;</td>
         </tr>";
}

// access it
echo $total_sum;

推荐阅读