2

我有一个购物车的会话变量,上面写着:'cart_b_1_1'。

字符串中的字母表示类别,整数表示用户 ID 和产品 ID。

如何检查已设置 SESSION var 的类别以查看它是否与新选择的类别匹配?

我试图确保如果一个项目被添加到 SESSION 数组并且已经存在一个具有相同类别字母的 var,那么它会被取消设置并有效地替换为新的选择。这是为了将按类别的选择限制为一个。

我在这里先向您的帮助表示感谢。

4

3 回答 3

2

您应该考虑利用关联数组的强大功能:

$_SESSION['categories'][$mycat] = array($user_id, $product_id);

这样,每当您设置一个新类别时,它都会覆盖最后一个类别。不知道为什么你需要user_id在那个级别,假设整个购物车属于一个用户,我的 Session 看起来像:

array(
    'user' => $user_id,
    'cart' => array('catid' => 'prodid', 'catid2', 'prodid2'))
);
于 2012-06-13T20:39:51.813 回答
2

您应该使用 3 个变量而不是 1 个。

$_SESSION['category'] = 'cart_b';
$_SESSION['user_id'] = 1;
$_SESSION['product_id'] = 1;

但总的来说 - 您可以将字符串转换为带有 '_' 分隔符的数组。

$varArray = explode('_', $_SESSION['var']);
于 2012-06-13T20:40:31.753 回答
0

使用 _ 分解会话变量并检查第一个元素以找到类别。

$myarray=explode("_",$_SESSION['yourvariablename']);

然后你 $myarray[1] 是类别,所以你可以比较和做其他事情。

这是你想要的吗?

于 2012-06-13T20:41:35.497 回答