回声字母选项,而无需将每个字母都写为数组元素?

时间:2019-07-05 19:19:41

标签: php arrays

<select>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    //...  and so on - till Z
</select>

有没有更短的方法,例如:

$arr = alphabet;
foreach($arr as $el){
    echo "<option>" . $el . "</option>";
}

因此,我需要避免编写以下代码:

$arr = array('A','B','C','D'... );

3 个答案:

答案 0 :(得分:6)

您可以使用range“创建包含一系列元素的数组”:

$arr = range('A','Z');
foreach($arr as $el){
    echo "<option>" . $el . "</option>";
}

答案 1 :(得分:5)

只需将range()与限制AZ一起使用。这将创建具有在该范围内定义的字符的数组。然后,您所需要做的就是遍历并打印它!

<select>
<?php
foreach (range('A', 'Z') as $l) {
    echo '<option value="'.$l.'">'.$l."</option>\n";
}
?>
</select>

如果您想添加除A-Z之外的其他字母,最好还是手动添加-range()不喜欢A-Z的范围之外的字符。

<select>
<?php
$alphabet = range('A', 'Z');
$alphabet[] = 'č';
$alphabet[] = 'ć';
$alphabet[] = 'š';
$alphabet[] = 'đ';
$alphabet[] = 'ž'; 
foreach ($alphabet as $l) {
    echo '<option value="'.$l.'">'.$l."</option>\n";
}
?>
</select>

答案 2 :(得分:3)

其他人显示了range,但摆脱了循环:

echo '<option>'.implode('</option><option>', range('A', 'Z')).'</option>';