我很难将用户输入的$_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);
如果你想比较数组值;作为harakiri写in_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."
}