如何使用php为一系列具有键的值创建数组?

如何使用php为一系列具有键的值创建数组?,php,codeigniter,drop-down-menu,Php,Codeigniter,Drop Down Menu,我正在使用CodeIgniter。我想创建一个数组,添加到包含数字1->1000的下拉列表中 我已经尝试过phprange()函数 $arr = range(1,1000); 它工作了,创建了一个从1到1000的下拉列表 不过我有一个问题 从我的下拉列表中选择文本1并发布时,发布值为0。 因为默认情况下,键从0开始,并且键设置为下拉值 这是我的下拉HTML的一部分 <select id="user-day" class="dropdown-small Verdana11-424039"

我正在使用CodeIgniter。我想创建一个数组,添加到包含数字1->1000的下拉列表中

我已经尝试过php
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>

您可以使用与创建数组相同的方法创建数组,只需稍微扩展范围,然后取消设置第0个元素

$arr = range(0,1000);
unset($arr[0]);

这将使用以下方法正确形成阵列:


另一种方法是通过循环创建阵列:

for ($i = 1; $i <= 1000; $i++)
    $arr[$i] = $i;

对于($i=1;$i根本不使用
value
属性。

因此,表单将向您发送选项。

可以使用老式的for循环

for ($i=1; $i <= 1000; $i++) {
   $arr[$i] = $i; 
}
print_r($arr);
对于($i=1;$i使用以下代码

<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>
<? } ?>


这将销毁第一个数组,因此取而代之的是1000列表选项,您将只得到999Yes,它将销毁数组的第0个元素,但是
range(01000)
包含所有元素-它生成的数组将有1001个元素,因此取消设置第0个元素将给您留下1000个元素,1-1000。但是如果范围从50开始,那么将是错误的。@WallaceMaxters嗯,是的,这个答案将是错误的,因为您所说的不是原始问题。4年以上的necro评论不错顺便提一下
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>';
<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>
<? } ?>