PHP中的多维会话数组

PHP中的多维会话数组,php,session,Php,Session,我想用PHP创建一个多维会话数组 $_SESSION['basket'][$id] = $array $array指的是一个数组 当我为一个新的$id运行此命令时,它将覆盖$\u会话['basket']中的上一个条目 表示每次计数($SESSION['basket'])为1 实际上,我想实现以下结构 $\u会话['basket']=array($id1=>array(),$id2=>array(),…) 编辑: if(!isset($_SESSION['basket'])) {

我想用PHP创建一个多维会话数组

$_SESSION['basket'][$id] = $array
$array
指的是一个数组

当我为一个新的
$id
运行此命令时,它将覆盖
$\u会话['basket']
中的上一个条目

表示每次
计数($SESSION['basket'])
1

实际上,我想实现以下结构

$\u会话['basket']=array($id1=>array(),$id2=>array(),…)

编辑:

if(!isset($_SESSION['basket'])) {                           
 $_SESSION['basket'] = array();
 $_SESSION['basket'][$id] = $array;
}
else{
 $_SESSION['basket'][$id] = $array;
}
当我这样做的时候

$_SESSION['basket'][$id] = implode('/',$array);
它起作用了。但不能作为值用于另一个数组

我该怎么做

谢谢。

像这样使用它:

$tmp = $_SESSION['basket'];
$tmp[$id] = array();
$tmp[$id] = $array;

那就行了。

我正在为我的问题提供答案。它可能会帮助其他有同样问题的人

不要将任何对象存储在$\u会话变量中。我在储存

$array = array( $key=>object($value),....)
因此,我将对象强制转换为字符串

$array = array($key => (string)$value, ...)
它是有效的


希望它能帮助一些人。

您能给我们看一下您的代码吗?您是否首先定义了
$\u SESSION['basket']=array()?就在那时,$_SESSION['basket'][$id]=$array;然后确保
$id
是唯一的,这样它就不会被覆盖it@Ghost:是$id是唯一的。我在GET方法中传递它。您是否碰巧传递了您试图修改的数组作为引用?(使用
和$array
)Defining可以删除之前存储在
$\u会话['basket']
中的所有键。我怀疑这个决定。如果我们定义“$\u SESSION['basket']=array()”,那么它将始终放在else语句中。而且它还会覆盖以前的“$\u会话['basket']=array()”。@manoj:它仍然不起作用。它不断替换以前的值请在问题中添加信息,说明您使用的是对象存储而不是数组,将您的答案标记为OPs答案。