-3

如何在下一个按钮单击时从会话数组中获取下一个数组元素?我试过next($_SESSION['qid'])了没有用

if((int)$_SESSION['qn']<=20) {
  $_SESSION['qn']=$_SESSION['qn']+1;
  $_SESSION['qid']++;
}

我也试过

$_SESSION['qid']=next($_SESSION['qid']);

但这都不起作用。有人能帮我吗?

4

1 回答 1

2

_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)

于 2012-09-08T11:19:31.153 回答