如何按元素检查和取消设置/设置会话


How do I check and unset/set SESSION by element?

我有一个购物车的会话变量,上面写着:"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]是类别,所以你可以比较和做其他事情。

这是你想要的吗?