我有一个多维数组,我可以通过FOR循环循环并返回值以进入数据库。 当用户删除一个项目然后我使用unset取出$ _SESSION [cart]数组时,会出现问题。特别是如果它是购物车中的第2行,我会使用
unset($_SESSION[cart][2]);
现在我不能再使用FOR循环了,因为我在FOR循环中使用的值中存在间隙。
原始数组将是:
$_SESSION['cart'][1]
$_SESSION['cart'][2]
$_SESSION['cart'][3]
从购物车中删除第2行(它可以是任何行,这是一个例子):
$_SESSION['cart'][1]
$_SESSION['cart'][3]
这是数组的结构:
$_SESSION['cart'][$lineId] = array('stockNumber' => $stockNumber, 'description' => $description, 'masterPrice' => $masterPrice);
$ lineId是购物车中的订单项
我目前使用此循环从购物车中检索数据:
for ($i = 1, $howMany = count($_SESSION['cart']); $i < $howMany+1; ) {
$stk_code = $_SESSION['cart'][$i]["stockNumber"];
$description = $_SESSION['cart'][$i]["description"];
$unitPrice = $_SESSION['cart'][$i]["masterPrice"];}
无论行项目编号如何,我都需要帮助理解这一点以及循环遍历数组的方法。我无法知道购物车中有多少物品或者多少物品。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用foreach而不是for循环
$_SESSION['cart'][1] = array('stockNumber' => 1, 'description' => 'test', 'masterPrice' => 115);
foreach ($_SESSION['cart'] as $value) {
$stk_code = $value["stockNumber"];
$description = $value["description"];
$unitPrice = $value["masterPrice"];
}