我的购物车的会话版本为:'cart_b_1_1'。
字符串中的字母表示一个类别,整数表示用户ID&产品ID。
如何检查已设置的SESSION var的类别,看它是否与新选择的类别匹配?
我试图确保如果一个项目被添加到SESSION数组并且已经存在具有相同类别字母的var,那么它将被取消设置并有效地替换为新选择。这是为了将类别选择限制为一个。
感谢您的帮助。
答案 0 :(得分:2)
您应该考虑采用关联数组允许的优势:
$_SESSION['categories'][$mycat] = array($user_id, $product_id);
这样,无论何时设置新类别,它都会覆盖最后一个类别。不确定为什么你需要那个级别的user_id
,假设整个购物车属于一个用户,我的会话看起来像:
array(
'user' => $user_id,
'cart' => array('catid' => 'prodid', 'catid2', 'prodid2'))
);
答案 1 :(得分:2)
您应该使用3个变量而不是1个。
$_SESSION['category'] = 'cart_b';
$_SESSION['user_id'] = 1;
$_SESSION['product_id'] = 1;
但一般情况下 - 您可以使用'_'分隔符将字符串转换为数组。
$varArray = explode('_', $_SESSION['var']);
答案 2 :(得分:0)
使用_爆炸会话变量并检查第一个元素以查找类别。
$ myArray的爆炸=( “_”,$ _ SESSION [ 'yourvariablename']);
然后你的$ myarray [1]就是这个类别,所以你可以比较和做其他事情。
这是你想要的吗?