如何使用if&否则在数组中找到答案?

时间:2014-09-20 23:29:10

标签: php html arrays if-statement conditional-statements

我遇到了简单的PHP应用程序的问题,用户必须从可用选项列表中输入正确的答案。这些选项存储在一个数组中。问题是我不能在脚本中随时使用选项而不是数组声明点。我可能听起来很蠢......我相信我。让我们说这是阵列:

$hobbyChoices = array("Movie","Music","Games","Books","Sports","Sleeping");

现在我的脚本中有一个文本框,$_POST方法用于提交表单。我选择的正确选择是“体育”。现在用户可以点击提交有4种可能性,它们列在下面。

  1. 用户单击提交按钮而不在文本框中输入任何文本。
  2. 用户猜错的选择来自$hobbyChoices但不是'体育'。
  3. 用户猜测不是来自阵列的选择。即阵列中的其他内容。
  4. 最后,用户输入正确的选项“体育”。
  5. 这可能看起来很简单,但问题是我不能在脚本中的任何地方使用爱好的名称,如前所述,除了数组声明。我能帮忙吗?此外,当我尝试执行4种可能性中的一种时,我遇到了大写和小写的问题。这是非常恼人,任何帮助将不胜感激。

    谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,以下是您正在寻找的内容:

<?php 
    $hobbyChoices = array("Movie","Music","Games","Books","Sports","Sleeping");

    if (isset($_POST['answer'])) {
        $answer = mysql_real_escape_string($_POST['answer']);
        $correct_answer = $hobbyChoices[4];
        $response = "Your answer is not one of the answers listed!";

        foreach ($hobbyChoices as $value) {
            if (strtolower($answer) == strtolower($value) && (strtolower($answer) != strtolower($correct_answer))) {
                $response = "You selected the wrong answer from the list of options!";
            }
            else if (strtolower($answer) == strtolower($value) && (strtolower($answer) == strtolower($correct_answer))) {
                $response = "You have answered correctly!";
            }
        }

        print $response;
    }
?>

<form name="form" method="post">
    <table>
        <tr>
            <td>What is baseball?
            </td>
            <td><input type="text" name="answer" />
            </td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="submit" />
            </td>
        </tr>
    </table>
</form>

strtolower是php中的一个函数,它将字符串转换为小写,可以帮助您比较两个值。