Php 为什么我会收到通知:未定义的偏移量:1,我如何更正它?

Php 为什么我会收到通知:未定义的偏移量:1,我如何更正它?,php,Php,为什么我会得到一个未定义的偏移量?我成功地在另一个页面上做了一个类似的循环 我在它说的那条线上得到了错误 $subTotal = $subTotal + $totalPrice[$i]; 在while循环中 $totalPrice = []; $i = 0; while($result = mysqli_fetch_assoc($runquery)) { $id = $value; $titl

为什么我会得到一个未定义的偏移量?我成功地在另一个页面上做了一个类似的循环

我在它说的那条线上得到了错误

$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>";
$totalPrice=[];
$i=0;
而($result=mysqli\u fetch\u assoc($runquery))
{
$id=$value;
$title=$result['gme_title'];
$price=$result['gme_price'];
$quantity=$\发布['quantity'][$id];
回声“;
回音“$title”;
回显“$id”;
回显“$数量”;
回音“$price”;
回声“;
$totalPrice[$i]=$quantity*$price;
$i++;
}
$小计=0;
而($i>0)
{
$subTotal=$subTotal+$totalPrice[$i];
$i--;
}
回声“;
回声“总计:”;
回显“$小计”;
回声“;

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

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

$subtotal = array_sum($totalPrice); 

一般来说,您也可以跳过所有$i的操作,这是不必要的。

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

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


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

您的问题是由于执行
$i++
while()循环的末尾。在最后一个循环中,
$i
值将比
$totalPrice
最后一个键大1。你需要做一个
$i--
在使用它之前,您需要执行下一个循环,而($i>=0)
则需要执行
,因为您当前正在跳过
$totalPrice[0]