我正在使用CodeIgniter。我想创建一个数组来添加到包含数字1 - >的下拉列表中。 1000.
我尝试过像这样的range()
函数
$arr = range(1,1000);
它工作并创建一个从1到1000的下拉列表。
我确实有一个问题。
从我的下拉菜单中选择文字1
后,发布值为0
。
因为默认情况下,密钥从0
开始,密钥设置为下拉值
以下是我的下拉HTML
的一部分<select id="user-day" class="dropdown-small Verdana11-424039" tabindex="123456" name="days_of_month">
<option value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
<option value="3">4</option>
<option value="4">5</option>
<option value="5">6</option>
<option value="6">7</option>
我有什么办法可以用键值定义range()
吗?
这样的值将变为
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
答案 0 :(得分:9)
这将使用array_combine正确形成您的数组:
$array = array_combine( range(1,1000), range(1,1000));
答案 1 :(得分:3)
您可以像创建数组一样创建数组,只需稍微扩展范围然后取消设置第0个元素。
$arr = range(0,1000);
unset($arr[0]);
答案 2 :(得分:0)
另一种方法是通过循环创建数组:
for ($i = 1; $i <= 1000; $i++)
$arr[$i] = $i;
答案 3 :(得分:0)
根本不要使用value
属性。
因此,表单将向您发送选项。
答案 4 :(得分:0)
可以使用老式的for循环;
for ($i=1; $i <= 1000; $i++) {
$arr[$i] = $i;
}
print_r($arr);
或者只调整表单填充
$arr = range(1,10);
print_r($arr);
echo '<select>';
foreach ($arr as $a) {
$value = $a+1;
echo '<option value=\"'.$value.'">'.$a.'</option><br />';
}
echo '</select>';
答案 5 :(得分:-2)
使用以下代码
<select id="user-day" class="dropdown-small Verdana11-424039" tabindex="123456" name="days_of_month">
<?php for ($i=0; $i <= 1000; $i++) { ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<? } ?>