Как сравнить значения массива, чтобы проверить правильный ответ - PullRequest
0 голосов
/ 23 марта 2020

Я работаю над приложением для викторины, поэтому у пользователей есть MCQ, и при отправке теста мне нужно показать результат.

Вот таблица ответов в mysql дб. Аналогичным образом, существует таблица questions , в которой есть столбцы id и question, содержащие соответственно id вопроса и вопрос. enter image description here

Итак, я запрашиваю БД из модели, вот так, это возвращает мне ассоциативный массив:

$testQuery = $this->db->query("SELECT quiz_id, correct_option FROM answers");
    if ($testQuery->num_rows() > 0) {
        return $testQuery->result_array();
    }

Здесь я печатаю массив в моем контроллере, который выглядит следующим образом при выполнении foreach:

<code>$allCorrectOptions = $this->DataModel->readCorrectOptions();

    $asize = sizeof($allCorrectOptions);

    for($i = 0; $i < $asize; $i++){
        echo "<pre>";
        var_dump($allCorrectOptions[$i]);
        echo "
";}

Результат приведенного выше фрагмента:

array(2) {
  ["quiz_id"]=>
  string(2) "13"
  ["correct_option"]=>
  string(13) "Maruti suzuki"
}
array(2) {
  ["quiz_id"]=>
  string(2) "14"
  ["correct_option"]=>
  string(6) "Kotlin"
}
array(2) {
  ["quiz_id"]=>
  string(2) "15"
  ["correct_option"]=>
  string(4) "BOSS"
}

В представлении есть теги радиовхода, а атрибут name содержит массив (allques) с ключом quiz_id , поэтому, когда пользователь отправляет тест, я делаю это, чтобы получить quiz_ids и выбранные значения.

$nums = $this->input->post('allques');

        foreach ($nums as $key => $value) {
            echo "<br>" . $key . "==" . $value;
        }

Результат приведенного выше фрагмента:

13==Maruti suzuki
14==MongoDB
15==Ubuntu Linux

Так что я думаю о том, чтобы получить результат массива из db запрос аналогичен приведенному выше результату фрагмента, так что я могу сравнить значения quiz_id и correct_option с значениями, отправленными пользователем, с помощью al oop, например: correct_answers ++. После этого показывает результат

Если такой подход проверки не эффективен, то есть ли другой способ сделать это правильно.

1 Ответ

0 голосов
/ 23 марта 2020

Я понял, это можно сделать так.

foreach ($allCorrectOptions as $key) {
        echo $key['quiz_id'] . "==" . $key['correct_option'] . "<br>";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...