为什么我收到通知:未定义的偏移量:1,我该如何纠正?

时间:2016-02-21 04:47:27

标签: php

为什么我在这里获得未定义的偏移量?我能够成功地在另一个页面中执行类似的循环。

我在

所在的行上收到错误
$subTotal = $subTotal + $totalPrice[$i];

在while循环中。

      $totalPrice = [];
      $i = 0;

      while($result = mysqli_fetch_assoc($runquery))
        {
            $id = $value;
            $title = $result['gme_title'];
            $price = $result['gme_price'];
            $quantity = $_POST['quantity'][$id];

            echo "<tr>";
                echo "<td>$title</td>";
                echo "<td>$id</td>";        
                echo "<td>$quantity</td>";
                echo "<td>$price</td>";
            echo "</tr>";

            $totalPrice[$i] = $quantity * $price;
            $i++;
            }
            $subTotal = 0;
            while($i > 0)
            {
                $subTotal = $subTotal + $totalPrice[$i];
                $i--;
            }
            echo "<tr>";
                echo "<td colspan=\"3\" class=\"align\">Total:</td>";
                echo "<td>$subTotal</td>";
            echo "</tr>";

2 个答案:

答案 0 :(得分:2)

您的查询中只能返回一个项目,这样您的$ totalPrice数组(索引为0)中只有一个条目在数组中。当它试图查找$ totalPrice [1]它告诉你它不存在。

你可以跳过第二个while循环,只使用array_sum函数。

$subtotal = array_sum($totalPrice); 

你也可以跳过所有$ i的东西,这是不必要的。

答案 1 :(得分:0)

在第一个循环结束时,i指向最后一个数组元素。

在尝试访问第二个循环中的元素之前,只需执行i--

正如代码所示,您实际上不需要再次浏览数组,因为array_sum将为您完成工作。