我很难将$ _POST从用户输入与一组数组值进行比较。
我设置了以下变量......
$response = $_POST['answer'];
...并选择了一系列可能的正确答案并将其存储在一个数组中......
$solutions = array('answer1','answer2','answer3');
我试过像这样检查/比较...
if (value($response) !== ($solutions)
{$error['result'] = "Wrong answer.";}
我知道这就是if (value($response) !== ($solutions)
行。
答案 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."
}