我有一个使用PHP会话的购物车。
添加项目:
$itemArray = array($produto=>
array('id'=>$produto, 'titulo'=>$titulo, 'quantidade'=>$quantidade, 'preco'=>$preco, 'image'=>$img)
);
$_SESSION["cart_item"] = $itemArray;
$ produto是ID(唯一)。
$ itemArray看起来像:
Array
(
[0] => Array
(
[id] => 3
[titulo] => Teste produto sem tamanho
[quantidade] => 1
[preco] => 1000.00
[image] => /img/no_img.png
)
[1] => Array
(
[id] => 1
[titulo] => Sapato masculino bonito e lustrado em couro
[quantidade] => 2
[preco] => 157.20
[image] => produtos/1.jpg
)
)
删除:
if($action == "remove") {
$code = $_GET['code'];
if(!empty($_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($_GET["code"] == $k)
unset($_SESSION["cart_item"][$k]);
if(empty($_SESSION["cart_item"]))
unset($_SESSION["cart_item"]);
}
}
}
问题是,有时它会删除一种产品,而另一些却没有。如果我有2个产品,则不会删除任何产品。 有什么想法吗?
答案 0 :(得分:1)
您有一个多维数组,因此,如果需要取消设置整个$_SESSION
元素,则需要进行比较:
if($_GET["code"] == $_SESSION["cart_item"][$k]['id'])
或
if($_GET["code"] == $v['id'])