function is_acceptable($input) { foreach ($this->get_acceptable() as $value) { if (!$score and compare_strings($input, $value, $flags)) { return TRUE; } } return FALSE; }
if (!$answer) { exit("no answer supplied"); } if (array_key_exists("correct", $values) and is_array($values["correct"]) and array_key_exists("expr", $values) and is_string($values["expr"])) { $value = compare_syntax3($values["expr"], $answer, nano_dfdict(), true); if ($value === null) { echo "false"; } else { echo "true"; } } else { if (array_key_exists("correct", $values) and array_key_exists("acceptable", $values) and is_array($values["correct"]) and is_array($values["acceptable"])) { $also = $values["correct"]; $correct = $values["correct"]; $values = $values["acceptable"]; } else { $correct = $also = $values; } $score = FALSE; foreach ($values as $value) { if (!$score and compare_strings($answer, $value, $flags)) { $score = TRUE; break; } } if ($score) { echo "true"; } else { echo "false"; } }
if (array_key_exists("correct", $values) and array_key_exists("acceptable", $values) and is_array($values["correct"]) and is_array($values["acceptable"])) { $also = $values["correct"]; $correct = $values["correct"]; $values = $values["acceptable"]; } else { $correct = $also = $values; } $score = FALSE; #error_log($answer2); foreach ($values as $value) { #error_log($_val); if (!$score and compare_strings($answer, $value, $flags)) { $score = TRUE; $_also = $also; foreach ($_also as $key => $v2) { if (compare_strings($value, $v2, $flags)) { unset($also[$key]); } } break; } } } $result[$name] = array_merge([$score, $score ? $value : $answer], array_values($score ? $also : $correct)); $out_of += 1; if ($score) { $subscore += 1; } } $result["subscore"] = $subscore; $result["out_of"] = $out_of;