在下面的代码中,通过使用implode和explode并找到每个问题的选项类型,我尝试从完整选项类型中检索每个单独的选项。
例如:
A-E
使A B C D E
A-C
使A B C
True or False
使True False
Yes or No
使Yes No
现在这适用于以下代码:
<?php
function ExpandOptionType($option) {
$options = explode('-', $option);
if(count($options) > 1) {
$start = array_shift($options);
$end = array_shift($options);
do {
$options[] = $start;
}while(++$start <= $end);
}
else{
$options = explode(' or ', $option);
}
return implode(" ", $options);
}
foreach ($arrQuestionId as $key=>$question) {
?>
<div class='lt-container'>
<p><?php echo htmlspecialchars($arrQuestionNo[$key]) . ": " . htmlspecialchars($arrQuestionContent[$key]); ?></p>
<p><?php echo ExpandOptionType(htmlspecialchars($arrOptionType[$key])); ?></p>
</div>
<?php
}
?>
但我想做的是,除了仅仅按字符串显示各个选项外,我想将它们显示为复选框。但我下面的尝试不起作用,如何才能显示复选框?我实际上收到了警告:Warning: explode() expects parameter 3 to be long, string given in ... on line 241
function ExpandOptionType($option) {
$options = explode('-', '<input type=\"checkbox\" name=\"anstype\" class=\"answers\" id=\"answer".$option."\" name=\"answerName[$option]\" value=\"$option\" />', $option);
//LINE 241
if(count($options) > 1) {
$start = array_shift($options);
$end = array_shift($options);
do {
$options[] = $start;
}while(++$start <= $end);
}
else{
$options = explode(' or', '<input type=\"checkbox\" name=\"anstype\" class=\"answers\" id=\"answer".$option."\" name=\"answerName[$option]\" value=\"$option\" />', $option);
}
return implode(" ", $options);
}
?>