Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取Foreach循环中的值之和_Php - Fatal编程技术网

Php 获取Foreach循环中的值之和

Php 获取Foreach循环中的值之和,php,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循环,它添加了一个表中的所有行,其中包含动态行(为上一页的订单中您想要的每个新产品添加行-有时可能是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_成本1,并能在页面上的某个地方显示出来。谢谢你的帮助

  • 只需在循环开始之前再创建一个变量,并在循环内部递增它
  • 在处理数字时使用适当的类型转换是一个好习惯(尤其是在像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;
//初始化总和变量
$total_sum=0;
foreach($a=>$b的产品){
$prod_cost1[$a]=((“$qty[$a]”)*(“$prod_cost1[$a]”);
//更新总金额(将产品成本键入浮动)
$total_sum+=(浮动)$prod_cost1[$a];
回声“
$product[$a]
$qty[$a]
$prod_成本1[$a]
";
}
//访问它
echo$total_sum;
$total=0;
foreach($a=>$b的产品){
$prod_cost1[$a]=((“$qty[$a]”)*(“$prod_cost1[$a]”);
$total+=$prod_cost1[$a];
回声“
$product[$a]
$qty[$a]
$prod_成本1[$a]
";
} 
echo“总计:{$Total}”;

array\u sum($prod\u cost1)
不是我。但也许缺乏解释!还有,你的是我的复制品:-)@MadhurBhaiya我可以说同样的话:)当你跑第一个到达那里时,这种情况经常发生。@Barry,有一分钟的间隔。无论如何,我同意你可能没有抄袭我的答案。@Barry我正在投票,因为你的答案仍然有效。谢谢@MadhurBhaiya我之前也有同样的答案。。。另一个答案和我的12票同时出现并被接受。。。我什么都没有(至少没有否决票)。。。所有这些都是因为我花了额外的时间链接到文档、格式化等等。。。这就是为什么我没有在这里解释我guess@Psam乐意帮忙:)
$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}";