PHP中的多维会话数组
我想用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'])) {
$_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答案。