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]
。