2011-04-17 86 views
1

我很难比较用户输入的$ _POST和一组数组值。如何将POST响应与数组值进行比较?

我已经设置下列变量...

$response = $_POST['answer']; 

...和选定的一范围的可能正确答案,并将它们存储在一个阵列...

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

I”已经试过检查/这样比较......

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

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

回答

4

in_array()是你的朋友:

$correct = in_array($response, $solutions); 
0
$answer = false; 

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

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

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

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

我想提醒你寿,如果你的数组包含了大量的信息与in_array检查它()会让你放慢脚步。

相反,你将不得不用isset()来检查它是否被设置,它比in_array()快得多。