【问题标题】:PHP Warning in for each每个 PHP 警告
【发布时间】:2020-10-25 22:14:26
【问题描述】:

所以我遇到了这个问题:

我做了一个在线测验,答案被推送到一个名为 answer 的数组中。 它工作正常,但是当我尝试重新显示正确答案以及用户提交的答案时,我得到了 foreach() 提供的无效参数

有一个while循环可以从数据库和问题中得到正确的答案。 例如,我需要显示以下内容:

问题1:-------- 正确答案:A.XXX 你的答案:$answer[0]

问题2:-------- 正确答案:C. XXX 你的答案:$answer[1]

<?php

        $con=mysqli_connect("localhost","xxx","xxx");

        if(!$con) {
            die('Could Not Connect: '.mysqli_error($con));
        }

        mysqli_select_db($con,"rankone");

        $res=mysqli_query($con,"SELECT * FROM rankone_quizzes WHERE (Bundle='Free-Exam-A') ORDER BY ID ASC");

        echo '<ol>';

        while($row=mysqli_fetch_array($res)) {


         foreach ($answer as $answer) {

            echo'<li> <h3> '.($row["Question"]).'</h3>';

            if (($row["CorrectAnswer"]) == "A"){

                echo'<p>A. '.($row["Option1"]).'</p>';
                echo'<p>You Answer: $answer</p>';

            }elseif(($row["CorrectAnswer"]) == "B") {

                echo'<p>B. '.($row["Option2"]).'</p>';
                echo'<p>You Answer: $answer</p>';

            }elseif(($row["CorrectAnswer"]) == "C") {

                echo'<p>C. '.($row["Option3"]).'</p>';
                echo'<p>You Answer: $answer</p>';
            }

            echo'</li>';
            echo'<br><br>';
            }
            echo'</ol>';

            ?>

【问题讨论】:

  • 首先,在这里发布您的代码,而不是图片。
  • 哦,好的,抱歉,我添加了它

标签: php html foreach while-loop


【解决方案1】:

这里的问题是 foreach ($answer as $answer) {

通过为loop value 赋予与$answer 数组相同的名称,您可以使用第一个元素值覆盖answer 数组。

尝试为您的数组指定一个不同的名称作为迭代值。 例如:

// defining your answers
$answers = [...];


foreach ($answers as $answer) {

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 2013-06-11
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多