为什么我在这里获得未定义的偏移量?我能够成功地在另一个页面中执行类似的循环。
我在
所在的行上收到错误$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>";
答案 0 :(得分:2)
您的查询中只能返回一个项目,这样您的$ totalPrice数组(索引为0)中只有一个条目在数组中。当它试图查找$ totalPrice [1]它告诉你它不存在。
你可以跳过第二个while循环,只使用array_sum函数。
$subtotal = array_sum($totalPrice);
你也可以跳过所有$ i的东西,这是不必要的。
答案 1 :(得分:0)
在第一个循环结束时,i
指向最后一个数组元素。
在尝试访问第二个循环中的元素之前,只需执行i--
。
正如代码所示,您实际上不需要再次浏览数组,因为array_sum
将为您完成工作。