我有一个购物车的会话变量,上面写着:"cart_b_1_1"。
字符串中的字母表示类别,整数表示用户 ID 和产品 ID。
如何检查已设置的 SESSION var 的类别以查看它是否与新选择的类别匹配?
我试图确保如果将一个项目添加到 SESSION 数组中,并且已经存在具有相同类别字母的 var,则它未设置并有效地替换为新选择。这是将按类别选择限制为一个。
提前感谢您的帮助。
你应该考虑利用关联数组让你做的事情的伟大之处:
$_SESSION['categories'][$mycat] = array($user_id, $product_id);
这样,每当您设置新类别时,它都会覆盖最后一个类别。不知道为什么您需要该级别的user_id
,假设整个购物车属于一个用户,我的会话将如下所示:
array(
'user' => $user_id,
'cart' => array('catid' => 'prodid', 'catid2', 'prodid2'))
);
您应该使用 3 个变量而不是 1 个变量。
$_SESSION['category'] = 'cart_b';
$_SESSION['user_id'] = 1;
$_SESSION['product_id'] = 1;
但总的来说 - 您可以将字符串转换为带有"_"分隔符的数组。
$varArray = explode('_', $_SESSION['var']);
使用 _ 分解会话变量并检查第一个元素以查找类别。
$myarray=explode("_",$_SESSION['yourvariablename']);
然后你$myarray[1]是类别,所以你可以比较和做其他事情。
这是你想要的吗?