如何在下一次按钮点击时从会话数组中获取下一个数组元素?
我试过next($_SESSION['qid'])
它不起作用
if((int)$_SESSION['qn']<=20) {
$_SESSION['qn']=$_SESSION['qn']+1;
$_SESSION['qid']++;
}
我也试过
$_SESSION['qid']=next($_SESSION['qid']);
但这没效果。有人能帮助我吗?
答案 0 :(得分:2)
_SESSION数组是一个关联数组。您无法通过数字索引访问它,但必须指定索引名称(例如,在代码中$_SESSION['qid']
)。无论如何,您仍然可以使用next()
函数,传递数组$_SESSION
(请参阅此处:http://php.net/manual/en/function.next.php)。使用它的正确方法是:
$element = next($_SESSION)
你可能想把这段代码放在一个循环中。
此外,您的代码:
$_SESSION['qn']=$_SESSION['qn']+1;
表示:将$_SESSION['qn']
加上$_SESSION['qn']
的值分配给1
,这不是您想要的。
如果您想要NON关联数组中的下一个元素,您应该使用:
$arr = $arr[$i+1]
其中$i
是整数值。
更新:关于您的评论,为什么不在$_SESSION['questions']
内保存常规数组(非关联)?这样你就可以通过这种方式获得问题:
$_SESSION['questions'][0], $_SESSION['questions'][1]...
现在你可以在一个周期内使用它,或者你想要的任何东西。 E.g:
echo $ _SESSION ['questions'] [$ current_question_id + 1];
其中$current_question_id
将是当前问题索引,将在下一个按钮上每个clic更新(+1)