在下面的一段代码中,它显示来自 AZ 的字母列表,具体取决于$OptionType
(例如 OptionType 是 AD,然后显示字母 ABCD)。然后它会删除正确的答案 ( $dbAnswer
),因此它会显示不正确的答案。
例如,正确答案是B
。所以它显示的不正确答案是AC D。
现在这适用于字母。
True or False
我遇到的问题是,如果选项是或,它不会从错误答案中删除正确答案Yes or No
?例如,如果选项类型是True or False
,如果True
是正确的和False
不正确的,那么它应该只显示False
答案,而是同时显示答案True
和False
。True or False
如果选项类型为或,我如何才能只拆分不正确和正确的答案Yes or No
。
下面是代码:
while ($stmt->fetch()) {
// Do this for each row:
if ( array_key_exists( $dbOptionType, $specialOptionTypes ) ) {
$options = $specialOptionTypes[$dbOptionType];
} else if ( preg_match( '/^([A-Z])-([A-Z])$/', $dbOptionType, $match ) ) {
$options = range( $match[1], $match[2] );
} else {
// issue warning about unrecognized option type
$options = array();
}
$right = str_split( $dbAnswer );
$wrong = array_diff( $options, $right );
$incorrect_ans[] = $wrong;
}
更新:
$specialOptionTypes = array('Yes or No' => array( 'Yes', 'No' ),'True or False' => array( 'True', 'False' ));
while ($stmt->fetch()) {
// Do this for each row:
if ( array_key_exists( $dbOptionType, $specialOptionTypes ) ) {
$options = $specialOptionTypes[$dbOptionType];
} else if ( preg_match( '/^([A-Z])-([A-Z])$/', $dbOptionType, $match ) ) {
$options = range( $match[1], $match[2] );
} else {
// issue warning about unrecognized option type
$options = array();
}
$right = $dbAnswer; // $right = 'True';
foreach ($options as $option) {
// To echo out 'wrong' answers
if ($option !== $right) {
echo $option . '<br>';
}
}
$wrong = array_diff( $options, $right );
$incorrect_ans[] = $wrong;
}