商品をショッピングカートから取り除くコードを書いています。 unset($_SESSION['cart'])
を使用してセッション変数全体を設定解除するのではなく、個々の配列要素を対象にしたいと思います。アイテム行のremove
ボタンを押すと、変数'isbn'
に格納された一意のIDが送信されるとします。PHPが要素ごとにセッション変数を設定解除しました
なぜこれは機能しませんか? unset($_SESSION['cart'][$_POST['isbn']]) ;
私の回避策:
$isbn[] = $_POST['isbn'] ;
$_SESSION['cart'] = array_diff($_SESSION['cart'],$isbn);
あなたが示すものはうまくいくはずです。これは基本的なデバッグを必要とします: '$ _POST ['isbn']'には何が入っていますか?セッション配列の値と100%一致していますか? 'print_r()'を使って配列を出力し、値を再確認してください。 –
私は問題が[9] => $ _POST ['isbn']が実際のVALUEである可能性があると思います。 9780192814968これが機能するには、私はどのキーを解除したいのかをプログラムに伝える必要があります – raoulbia
'$ isbn'の値は文字列で、' $ _SESSION ['cart'] 'のキーは整数ですか? – thetaiko