http://phpfiddle.org/main/code/get-rps
上記のフィドルには、すべてのデータを挿入できることが示されていません。しかし、アプリケーションでは、すべての間違った回答が表に表示されているわけではありません。
このエラーは、配列が$ques_ans
for() で反復処理されているためにキーにギャップがあるために発生します。
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 つの正解が削除されることです。これは、不正解の配列に表示されます。
以下のスクリーンショットは、間違った答えとキーが見つからないことを示していますが、これを修正するにはどうすればよいですか?