如何在foreach期间得到总数

时间:2014-01-25 18:42:45

标签: php

我正在学习PHP,并尝试输出“价格”列的总和。

这就是现在的样子: http://imgur.com/X00o4jS

以下是代码:

            while($row = $result->fetch_array()){
            $rows[] = $row;

        }

        foreach($rows as $row){

            $food = $row["food"];
            $price = $row["price"];
            $id = $row['id'];

            if(!empty($_POST[$id])){
            $qtyPrice = $price * $_POST[$id];
            $qty = $_POST[$id];

            }

            echo "<tr>
            <td>$food</td>
            <td>$qty</td>
            <td>$$qtyPrice</td>
        </tr>";
        }

2 个答案:

答案 0 :(得分:0)

在开始循环之前设置变量,并在其中添加qtyPrice。退出循环后打印该变量

    $total = 0;

foreach($rows as $row){

            $food = $row["food"];
            $price = $row["price"];
            $id = $row['id'];

            if(!empty($_POST[$id])){
            $qtyPrice = $price * $_POST[$id];
            $total += $qtyPrice;
            $qty = $_POST[$id];

            }

            echo "<tr>
            <td>$food</td>
            <td>$qty</td>
            <td>$$qtyPrice</td>
        </tr>";
        }
    echo $total;

答案 1 :(得分:0)

无需进行2次循环。您正在使用1st while循环设置数组,然后使用第二个foreach循环来读取它并显示数据。

使用while循环直接生成html表会更有效。

您可以使用$total += $qtyPrice (same as $total = $total + $qtyPrice)。 只需记住在循环之前将其设置为0.

$total = 0;

 while($row = $result->fetch_array()){

        $food = $row["food"];
        $price = $row["price"];
        $id = $row['id'];

        if(!empty($_POST[$id])){
        $qtyPrice = $price * $_POST[$id];
        $qty = $_POST[$id];

        $total += $qtyPrice;

        echo "<tr>
        <td>$food</td>
        <td>$qty</td>
        <td>$$qtyPrice</td>
    </tr>";
    }

//display the total in its separate row
echo "<tr><td>Total:</td><td></td><td>$total</td></tr>";

希望这有帮助!