如何将POST响应与数组值进行比较?

时间:2011-04-17 19:23:03

标签: php arrays

我很难将$ _POST从用户输入与一组数组值进行比较。

我设置了以下变量......

$response = $_POST['answer'];

...并选择了一系列可能的正确答案并将其存储在一个数组中......

$solutions = array('answer1','answer2','answer3');

我试过像这样检查/比较...

if (value($response) !==  ($solutions)
{$error['result'] = "Wrong answer.";}

我知道这就是if (value($response) !== ($solutions)行。

3 个答案:

答案 0 :(得分:4)

in_array()是你的朋友:

$correct = in_array($response, $solutions);

答案 1 :(得分:1)

如果要比较数组值; 正如 harakiri 写的 in_array()是你的朋友。

但是如果要比较数组键,则必须使用; 的 array_key_exists()

我想警告你,如果你的数组包含很多信息,用in_array()检查它会减慢你的速度。

相反,您必须使用isset()来检查它是否已设置,它比in_array()快得多。

答案 2 :(得分:0)

$answer = false; 

foreach ($solutions as $sol)
{
    if ($sol == $_POST['answer'])
    {
        $answer = $sol;
        break; 
    }
}

if ($answer)
{
    //GOOD
}
else
{
    $error['result'] = "Wrong answer."
}