3

質問ごとにすべての不正解を表に表示しようとしていますが、奇妙な理由で、行の1つに空の答えが表示されています。現在、これは質問2でのみ発生しており、質問2は複数の正解がある唯一の質問であるため、私が抱えている問題は$row_count正しく設定されていないことだと思いますが、私の質問は、答えがありDませんか?問題を確認するためのphpフィドルはここにありますhttp://phpfiddle.org/main/code/get-rps

複数の正解を含む質問の不正解の行数を設定する以下のコードは、次のとおりです。

 <?php
        //remaining incorrect answers in separate row (if any) follows here
    if($row_count < $q_row_span - 1) 
    {
        for($i=($row_count + 1); $i<$q_row_span; $i++) { ?>     
            <tr>
               <td class="answertd"><?php echo$inc_ans[$i];?>
                  <input type="hidden" id="hiddenincorrect" name="incorrect[]" value="<?php echo$inc_ans[$i];?>">
               </td>

               <td class="answermarkstd">
                  <input class="individualMarks q<?php echo$questionNo?>_mark"  q_group="1" name="answerMarks[]" type="text" data-type="qmark" data-qnum="<?php echo$questionNo?>" onkeypress="return isNumberKey(event)" maxlength="3" />
               </td>
            </tr>
    <?php
    }
4

1 に答える 1

0

エラーは$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]。これはarray_intersect、49 行目で使用する function がキーを保持するためです。

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

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

アプリのロジックには意味がないかもしれませんが。私はそれに飛び込みませんでした。だからそれをチェックしてください。

于 2013-01-14T08:50:37.487 に答える