我正在使用会话制作购物车系统。我需要一种方法来取消数组中的1 /所有值,它等于$ _GET的值。怎么办呢?
我尝试过使用unset()函数,但是在使用$ _GET值时我不知道如何格式化它。我见过的所有教程,只显示如何取消设置在脚本中直接指定的内容......
编辑:当我var_dump
我的会话时,这就是我得到的:
array(1) {
[0]=> array(13) {
[0]=> NULL
[1]=> string(1) "1"
[2]=> string(1) "3"
[3]=> string(1) "2"
[4]=> string(1) "2"
[5]=> string(1) "3"
[6]=> string(1) "1"
[7]=> string(1) "3"
[8]=> string(1) "2"
[9]=> string(1) "1"
[10]=> string(1) "3"
[11]=> string(1) "3"
[12]=> string(1) "3"
}
}
我使用以下代码行将项目添加到购物车:
array_push($_SESSION['cart'], $_GET['item']);
$ _SESSION ['cart']是购物车,$ _GET ['item']是添加的商品ID
答案 0 :(得分:1)
您可以简单地替换其值
$_SESSION['cart']=array_diff($_SESSION['cart'], $_GET['item']);
修改强>
Make sure $_SESSION['cart'], $_GET['item'] have same structure
<强>更新强>
if(is_array($_GET['item']) && is_array($_SESSION['cart']))
{
foreach($_GET['item'] as $value)
{
foreach($_SESSION['cart'] as $key=>$val)
{
if($value == $val)
{
unset($_SESSION['cart'][$key]);
break;
}
}
}
} else { echo "error";}
答案 1 :(得分:0)
假设您的购物车具有以下结构,您可以使用它来取消设置
$cart = array("cat1" => array("product_1", "product_2"), "cat2" => array("product_3", "product_4"));
unset($cart[$_GET['category']]);