猿问

检查类似的会话变量,如果存在则仅增加数量

我需要将商品添加到购物车中,因此,如果我添加productid = 1的一种产品,然后又添加同一产品productid = 1的产品,则只需要增加商品的数量,而无需添加其他商品该产品。


我尝试了以下方法:


foreach ($_SESSION['cart'] as $item) {

        if ($item['product_id'] == $part_id) {

            $quantity++;

        }

    }

但是我需要知道如何删除该产品的先前添加的会话。


这是我目前用于将产品添加到购物车中的代码,但是以下代码仅添加了数量为2的另一种产品,因此我有:


//-购物车-//


产品:1数量:1


产品:1数量:2


//-购物车-//


代码:


foreach ($_SESSION['cart'] as $item) {

if ($item['product_id'] == $part_id) {

    $quantity++;

    }

}


$_SESSION['cart'][] = array(

    'product_id' => $part_id,

    'title' => $title,

    'price' => $price,

    'default_img' => $default_img,

    'quantity' => $quantity);

编辑:关于如何取消设置上一个会话的最初的问题,但是如果我再次添加相同的产品,数量保持为2,表示它取消设置数量= 3的上一个会话,并且仅增加数量+1表示数量保持在2。


POPMUISE
浏览 129回答 2
2回答

莫回无

您正在处理关联数组。您具有要删除的对象的密钥。添加数量后,我将立即取消设置。现在,您可以使用更新的数量推送下一个对象。foreach ($_SESSION['cart'] as $item) {        if ($item['product_id'] == $part_id) {            $quantity++;            $_SESSION['cart'][$part_id] == NULL //Add this        }    }

潇潇雨雨

这为我工作:$exists = false;    foreach ($_SESSION['cart'] as $key => $item) {        if ($item['product_id'] == $part_id) {            $exists = true;        }    }    if ($exists == true) {        $_SESSION["cart"][$key]['quantity']++;    }    else{    $_SESSION['cart'][] = array(        'product_id' => $part_id,        'title' => $title,        'price' => $price,        'default_img' => $default_img,        'quantity' => $quantity);    }
随时随地看视频慕课网APP
我要回答