无法在会话中从购物车中删除商品

时间:2020-01-21 11:00:53

标签: php session foreach

我有一个使用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个产品,则不会删除任何产品。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您有一个多维数组,因此,如果需要取消设置整个$_SESSION元素,则需要进行比较:

if($_GET["code"] == $_SESSION["cart_item"][$k]['id'])

if($_GET["code"] == $v['id'])