在Foreach循环中获取值的总和

时间:2018-09-26 14:19:50

标签: php

我有一个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并能够将其显示在页面上的某处。谢谢您的帮助!

2 个答案:

答案 0 :(得分:2)

  • 只需在循环开始之前再创建一个变量,然后在循环内将其递增。
  • 在处理数字时使用正确的类型转换是个好习惯(尤其是在像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;

答案 1 :(得分:0)

$total = 0;
foreach($product as $a => $b) { 
    $prod_cost1[$a] = (("$qty[$a]") * ("$prod_cost[$a]"));

    $total += $prod_cost1[$a];

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

echo "Total: {$total}";