我不确定为什么会这样,但我似乎经常遇到这个问题。这是我用于购物车的原始 JSON:
{
"cartitems": [
{
"Product_ID": "1",
"quantity": "1",
"cartid": 1
},
{
"Product_ID": "5",
"quantity": "1",
"cartid": 4
},
{
"Product_ID": "5",
"quantity": "1",
"cartid": 6
},
{
"Product_ID": "5",
"quantity": "1",
"cartid": 7
}
]
}
此 JSON 数据存储到 $_SESSION 变量 $_SESSION['cart_items']
此代码用于删除项目:
$cartid = $_POST['varA'];
/* Remove the item */
foreach ($_SESSION['cart_items']['cartitems'] as $key => $product) {
if ($product['cartid'] == $cartid) {
unset($_SESSION['cart_items']['cartitems'][$key]);
}
}
echo json_encode($_SESSION['cart_items']);
当 Cartid = 7 的项目被删除时,它被结束时的结果是这样的:
{
"cartitems": {
"0": {
"Product_ID": "1",
"quantity": "1",
"cartid": 1
},
"1": {
"Product_ID": "5",
"quantity": "1",
"cartid": 4
},
"2": {
"Product_ID": "5",
"quantity": "1",
"cartid": 6
}
}
}
它增加了钥匙!这只发生在超过 3 个项目时,这让我感到困惑。有什么办法可以重写我的代码,以防止创建这些密钥?