如何比较POST响应与数组值


How to compare POST response to array values?

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

我设置了以下变量…

$response = $_POST['answer'];

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

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

我试过这样检查/比较……

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

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

in_array()是你的朋友:

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

如果你想比较数组值;作为harakiriin_array()是你的朋友

但是如果你想比较数组键,你必须使用; array_key_exists ()

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

您将不得不使用isset()来检查它是否已设置,它比in_array()快得多。

$answer = false; 
foreach ($solutions as $sol)
{
    if ($sol == $_POST['answer'])
    {
        $answer = $sol;
        break; 
    }
}
if ($answer)
{
    //GOOD
}
else
{
    $error['result'] = "Wrong answer."
}