0

http://phpfiddle.org/main/code/get-rps

上記のフィドルには、すべてのデータを挿入できることが示されていません。しかし、アプリケーションでは、すべての間違った回答が表に表示されているわけではありません。

このエラーは、配列が$ques_ansfor() で反復処理されているためにキーにギャップがあるために発生します。

var_dump($ques_ans)私たちに与えます:

array(3) {
  ... skipped for brevity
  [2]=>
  array(2) {
    [0]=>
    string(1) "B"
    [2]=>
    string(1) "D"
  }
  ... skipped for brevity
}

key を持つ要素はありません[1]。これは、49 行目で使用している functionarray_intersectがキーを保持しているためです。

array_values()51行目に追加したエラーなしで動作するようにコードをすばやく修正するには、次のようにします。

$ques_ans[$questionNo] = array_values($q_incorrect_ans);    //store the array of incorrect ans against the ques no as key

ただし、まだキーが欠落しているため、すべての不正解が表示されるわけではありません。ここで他に何が間違っていますか?

大きな問題は、質問に複数の正解がある場合、不正解の配列に、それらの質問に対する複数の回答セットが表示され、各回答セットに対して一度に 1 つの正解が削除されることです。これは、不正解の配列に表示されます。

以下のスクリーンショットは、間違った答えとキーが見つからないことを示していますが、これを修正するにはどうすればよいですか?

ここに画像の説明を入力

4

1 に答える 1

4

array_values を使用します。

foreach($ques_ans as $questionNo => $inc_ans)
{
    $inc_ans = array_values($inc_ans);
}
于 2013-01-15T13:46:38.853 に答える