0

当我这样做时,我遇到了一个小问题:

$_SESSION['cartItems'] = array();

它工作正常,它在会话中创建了一个 cartItems 数组。

但是当我这样做时:

$_SESSION[2]['cartItems'] = array();

这一直有效,直到我刷新页面,然后它忘记了这个会话数组?

我尝试先创建 2 数组:

$_SESSION[2] = array();
$_SESSION[2]['cartItems'] = array();

但仍然不能像它应该做的那样工作。

我该如何解决这个问题?

4

2 回答 2

3

数字键被转换为字符串,因为该$_SESSION变量是一个关联数组。您可能想$_SESSION["2"]在分配或检索值时尝试使用。

此外,在我看来,您正在尝试保留几个购物车数组,所以为什么不使用这样的东西:

$_SESSION['carts'] = array();
$_SESSION['carts'][0] = array();
$_SESSION['carts'][1] = array();
...

甚至$_SESSION['carts'][0]['cartItems'] = array()

一些相关文章供进一步阅读:

于 2013-06-27T11:45:50.187 回答
-1

我建议您用作序列化对象。

$_SESSION['carts'] = serialize(array(0=> "foo", 1=> array("bar")));

在这种情况下,您可以存储复杂的数据,并且它将是安全和干净的。

于 2013-06-27T11:57:52.783 回答