• Как произвести правильный подсчет в тесте?

    @macho992 Автор вопроса
    Время перебирать уже нет.
    Вот в этой части проблема.. Вот я не могу понять.. Что там нужно поменять, чтобы все подсчитывало правильно
    $points_question = $points / count($questions);
            $points_result = 0;
            foreach ($questions as $key => $question) {
                $points_for_question = 0;
                if (array_key_exists($question->id, $answers)) {
                    $answers_id = array_merge($answers_id, $answers[$question->id]);
                    $true_answers = ArrayHelper::getColumn($question->answers, 'id');
                    if (count($true_answers) >= count($answers[$question->id])) {
                        $diff = array_diff($true_answers, $answers[$question->id]);
                        if (count($diff) > 0) {
                            $points_for_question = $points_question / 2;
                        } else {
                            $points_for_question = $points_question;
                        }
                    } else {
                        $diff = array_diff($answers[$question->id], $true_answers);
                        if (count($diff) < count($answers[$question->id])) {
                            $points_for_question = $points_question / 2;
                        }
                    }
                }
                $points_result += $points_for_question;
            }