私は少し苛立たしい問題に遭遇しました。これが私のPHPコードです。変数がどこから来ているかを無視します。これはショッピングカート機能用ですが、さまざまな分野に適用できます。
$data_set = json_decode(stripslashes($_POST['varA']), true);
$pid = $pid['product_id'];
$quantity = $pid['quantity'];
$_SESSION['cartid'] = $_SESSION['cartid'] + 1;
$product_data = array("Product_ID" = > $pid, "quantity" = > $quantity, "cartid" = > $_SESSION['cartid']);
私の問題は、コードのこの場所で発生しています。最初に、Session変数に値が含まれているかどうかを確認します。値が含まれていない場合は、連想配列の作成に進みます。
if (empty($_SESSION['cart_items'])) {
$_SESSION['cart_items'] = array("items" = > $product_data);
} else {
array_push($_SESSION['cart_items']['items'], $product_data);
}
echo json_encode($_SESSION['cart_items']);
最初のアイテムが「追加」された後の最終結果は次のようになります。
{
"items": {
"Product_ID": "2",
"quantity": "1",
"cartid": 1
}
}
ただし、最初の追加を数回行った後、すべての値がキーを取得します。
{
"items": {
"0": {
"Product_ID": "2",
"quantity": "1",
"cartid": 2
},
"1": {
"Product_ID": "2",
"quantity": "1",
"cartid": 3
},
"Product_ID": "2",
"quantity": "1",
"cartid": 1
}
}
これらのキーが発生しないようにするにはどうすればよいですか?これは可能ですか?そうでない場合、キーが毎回追加されるようにこれをどのように書き直すことができますか?そして、これはフロントエンドのJSで解析してループすることは可能ですか?
質問がたくさんあります。どんな助けでも本当にありがたいです。