例如:
$_SESSION['1'] = 'username'; // works
$_SESSION[1] = 'username'; //doesnt work
我想将会话数组索引存储为数组索引。所以o / p是:
Array(
[1] => 'username'
)
答案 0 :(得分:9)
$_SESSION
只能用作关联数组。
你可以这样做:
$_SESSION['normal_array'] = array();
$_SESSION['normal_array'][0] = 'index 0';
$_SESSION['normal_array'][1] = 'index 1';
就个人而言,我只是坚持使用关联数组。
$_SESSION['username'] = 'someuser';
或者
$_SESSION['username_id'] = 23;
答案 1 :(得分:5)
我怀疑这可能是因为$ _SESSION数组纯粹是一个关联数组。另外,正如PHP manual所说:
$ _SESSION关联中的键 数组也是一样的 作为常规变量名称的限制 在PHP中,即他们不能以a开头 数字,必须以字母或开头 下划线。
顺便提一下,您是否检查过错误日志中是否有任何NOTICE级错误? (您可能必须启用此级别。)尝试使用数字键很可能会引发错误。
答案 2 :(得分:0)
您也可以采用这种方法来保存数组维度:
$_SESSION['form_'.$form_id] = $form_name;
可能如下所示:
$_SESSION['form_21'] = 'Patient Evaluation';
而不是:
$_SESSION['form'][21] = 'Patient Evaluation';
使用另一个数组维度。