Php $\请求问题未定义的偏移量

Php $\请求问题未定义的偏移量,php,Php,提交第一页时,将显示 注意:第9行C:\xampp\htdocs\result.php中未定义的偏移量:1 发布数据的第一页 <?php $ans=$_REQUEST['ans']; $qes=$_REQUEST['qes']; $ra=$_REQUEST['right_op']; $count=0; for($i=0; $i<count($ans); $i++) { echo "Question".$qes[$i]"<br>"; echo "Ans".

提交第一页时,将显示

注意:第9行C:\xampp\htdocs\result.php中未定义的偏移量:1

发布数据的第一页

<?php 
$ans=$_REQUEST['ans'];
$qes=$_REQUEST['qes'];
$ra=$_REQUEST['right_op'];
$count=0;
for($i=0; $i<count($ans); $i++)
{
    echo "Question".$qes[$i]"<br>";
    echo "Ans".$ans[$i]"<br>";
    echo "Right Option".$ra[$i]."<br>";
    if(isset($ans[$i]) == isset($ra[$i]))
    {
        $count++;
    }
}
?>






此代码中有什么错误。请详细告诉我。
谢谢。

在访问之前始终使用
isset()

<?php 
$i=1;
$x=0;
$y=0;
$z=0;

do{
  ?>
            <tr>
              <td width="30"></td>
              <td width="30" height="27"><?php echo "$i";?></td>
              <td width="493"><?php echo $row_question['question']; ?>
                <input type="hidden" name="q_id[<?php// echo $y; ?>]" id="q_id" value="    <?php echo $row_question['q_id']; ?>" />
                <input type="hidden" name="qes[<?php echo $y; ?>]" id="qes" value="<?php     echo $row_question['question']; ?>" /><input name="right_op[<?php echo $z; ?>]"     type="hidden" id="right_op" value="<?php echo $row_question['right_op']; ?>" /></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td height="59" align="right"><h3>A)</h3>
                <h3>B)</h3>
                <h3>C)</h3>
                <h3>D)</h3></td>
              <td><h3>
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="A" id="ans_0"     />
                      <font color="#FFFFFF"><?php echo $row_question['op_a']; ?></font>    </label>
                <br />
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="B" id="ans_1"     />
                  <font color="#FFFFFF"><?php echo $row_question['op_b']; ?></font>    </label>
                <br />
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="C" id="ans_2"     />
                  <font color="#FFFFFF"><?php echo $row_question['op_c']; ?></font>    </label>
                <br />
                <label>
                   <input type="radio" name="ans[<?php echo $x; ?>]" value="D" id="ans_3"     /> 
                  <font color="#FFFFFF"><?php echo $row_question['op_d']; ?></font>    </label>
                <br />
              </h3></td>
             </tr>

<tr>
  <td height="17" colspan="3"><hr /></td>
    </tr><?php
    $i++; 
    $x++;
    $y++;
        $z++;
    } while ($row_question = mysql_fetch_assoc($question)); ?>


或者

看起来您希望所有数组的大小都相同,因此,
$ra
的情况并非如此,因为它比其他数组更容易使用

array_key_exists($i, $ra);
echo“右选项”。$ra[$i]。“
”;

引起注意。看起来您需要修复
$ra
大小。

$ra
在数组中的成员数不如
$ans
那么多,因此当您执行循环的第二次迭代时,
$ra[1]
中没有任何内容可显示。你需要弄清楚为什么
$ra
$ans
的长度不同-如果没有更多关于你在做什么的信息,我们很难知道

正如@Nikola所指出的,在尝试使用
isset()
输出索引之前,您应该始终检查以确保正在访问的索引中有内容。当
$ra[1]
中有东西时,
$ans[1]
中没有东西是否有效只有你能回答


从您的代码中推断出很多信息,$ra似乎是用来表示正确答案的。在这种情况下,将只有一个,因此您应该使用
$ra[0]
而不是
$ra[$i]
,后者将始终显示$ra数组中的第一个元素。当然,我可能误解了你的代码的意图,所以YMMV。

尽管如此,如果有一个
$\u请求['right\u op']
并且它是一个数组,
$ra[0]
应该不会有任何问题。但是他不在$ra[0],他在$ra[1]:“未定义的偏移量:1”@icedwater没有规则数组必须在phpThanks@cori中有一个0键,但是你们从哪里知道,
$i
是1而不是0?请查看第一页的详细信息。@SubhajitSarkar您也必须对$ans和$QUE执行同样的操作。请查看第一页的详细信息。可能的副本请查看第一页的详细信息。
array_key_exists($i, $ra);
 echo "Right Option".$ra[$i]."<br>";