Как сравнить ответ POST с значениями массива?

Мне сложно сопоставить $ _POST от пользовательского ввода до набора значений массива.

Я установил следующую переменную …

$response = $_POST['answer']; 

… и выбрал ряд возможных правильных ответов и сохранил их в массиве …

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

Я попытался проверить / сравнить это …

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

Я знаю, что это строка if (value($response) !== ($solutions) .

Solutions Collecting From Web of "Как сравнить ответ POST с значениями массива?"

in_array() – ваш друг:

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

Если вы хотите сравнить значения массива; как писал харакири 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." }