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