当我这样做时,我遇到了一个小问题:
$_SESSION['cartItems'] = array();
它工作正常,并在会话中创建一个cartItems数组。
但是当我这样做时:
$_SESSION[2]['cartItems'] = array();
这一直有效,直到我刷新页面,然后忘记了这个会话数组?
我首先尝试创建2个数组:
$_SESSION[2] = array();
$_SESSION[2]['cartItems'] = array();
但仍然没有像预期的那样发挥作用。
我该如何解决这个问题?
答案 0 :(得分:3)
数字键被转换为字符串,因为$_SESSION
变量是一个关联数组。您可能希望在分配或检索值时尝试使用$_SESSION["2"]
。
此外,在我看来,你试图坚持使用几个购物车阵列,所以为什么不使用这样的东西呢?
$_SESSION['carts'] = array();
$_SESSION['carts'][0] = array();
$_SESSION['carts'][1] = array();
...
甚至是$_SESSION['carts'][0]['cartItems'] = array()
进一步阅读的一些相关帖子:
答案 1 :(得分:-1)
我建议你使用序列化对象。
$_SESSION['carts'] = serialize(array(0=> "foo", 1=> array("bar")));
在这种情况下,您可以存储复杂的数据,它将是安全的。清洁。