なぜこれが起こっているのかわかりませんが、この問題に頻繁に遭遇するようです。ショッピング カートの元の 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']);
carid = 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 つ以上ある場合にのみ発生するため、困惑します。これらのキーが作成されないようにコードを書き直す方法はありますか?