Php 仅显示第一个和最后一个选项的复选框

Php 仅显示第一个和最后一个选项的复选框,php,Php,下面的代码所做的是检索完整选项类型中的单个选项。例如,如果$option是A-D,那么通过使用explode,它将能够显示每个单独的选项以输出一个bcd 现在在这个例子中,我希望一个bcd每个都有自己的复选框。但对于下面的代码,它只是为A和D创建复选框,它应该为A,B,C,D创建的第一个和最后一个选项。如何做到这一点 function ExpandOptionType($option) { $options = explode('-', $option); foreach($o

下面的代码所做的是检索完整选项类型中的单个选项。例如,如果$option是A-D,那么通过使用explode,它将能够显示每个单独的选项以输出一个bcd

现在在这个例子中,我希望一个bcd每个都有自己的复选框。但对于下面的代码,它只是为A和D创建复选框,它应该为
A
B
C
D
创建的第一个和最后一个选项。如何做到这一点

function ExpandOptionType($option) { 
    $options = explode('-', $option);
    foreach($options as $indivOption) {
        echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
    }
    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);
}
函数ExpandOptionType($option){
$options=分解('-',$option);
foreach($独立期权的期权){
回显“”.$indivOption.“

”; } 如果(计数($选项)>1){ $start=array\u shift($options); $end=阵列移位($options); 做{ $options[]=$start;
}虽然(+$start嗯,我不太确定函数中的
if-else
是做什么的,但是这就是你在想的吗

<?php foreach (range('A','D') as $letter): ?>
  <p>
    <input type="checkbox" name="options[]" id="option-<?php echo $letter ?>" value="<?php echo $letter ?>" />
    <label for="option-<?php echo $letter ?>"><?php echo $letter ?></label>
  </p>
<?php endforeach ?>


函数ExpandOptionType($option){
$options=分解('-',$option);
如果(计数($选项)>1){
$start=array\u shift($options);
$end=阵列移位($options);
做{
$options[]=$start;

}(++$start
$option
有什么值?放入print\r($options)并检查它有多少个元素。通过执行print
$options
,它输出这个
数组([0]=>a[1]=>D)
当打印“$option”显示
A-D
时,如果
$option
A-D
,则您的代码将创建两个复选框,一个用于option
A
,一个用于option
D
。然后您更改
$options
数组的内容,因此您的顺序可能是错误的。else语句是针对哪个选项的ve
介于两者之间,而不是
-
选项并不总是D,它可以是A-C、A-H、A-Z。而如果选项之间有
,则其
为真或假
为是或否
。如果我使用函数方法,那么括号之间应该放些什么
echo ExpandOptionType('A','D'))
那么你应该在你的问题中更详细地解释你的问题。对此我表示歉意,我只是试图提供一个示例,让你知道如何检索选项类型和单个选项。实际上,我只想将B C D作为字符串输出,而不是现在的输出,我想将其作为复选框输出。但是我想要这个对于每一个可能的选择,它必须是动态的
function ExpandOptionType($from, $to) {
    $output = '';
    $range = range($from, $to);
    foreach ($range as $letter) {
        $output .= '<p>';
        $output .= "<input type=\"checkbox\" name=\"options[]\" id=\"option-{$letter}\" value=\"{$letter}\" />";
        $output .= "<label for=\"option-{$letter}\">{$letter}</label>";
        $output .= '</p>';
    }
    return $output;
}
echo ExpandOptionType('A', 'D');
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);
     }
     foreach($options as $indivOption) {
         echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
     }
     return implode(" ", $options);
}