-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;

意味:プラス$_SESSION['qn']の値に割り当てますが、これは必要な値ではありません。非連想配列の次の要素が必要な場合は、次を使用する必要があります。$_SESSION['qn']1

$arr = $arr[$i+1]

ここ$iで、は整数値です。

更新:コメントに関して、通常の配列(非結合)を内部に保存してみません$_SESSION['questions']か?このようにして、この方法で質問にアクセスできるようになります。

$_SESSION['questions'][0], $_SESSION['questions'][1]...

今、あなたはそれをサイクル内で、またはあなたが望むものなら何でも使うことができます。例えば:

echo $ _SESSION ['questions'] [$ current_question_id + 1];

$current_question_id次のボタンのクリックごとに更新(+1)される現在の質問インデックスはどこにありますか

于 2012-09-08T11:19:31.153 に答える