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

时间:2011-11-22 13:49:04

标签: php codeigniter drop-down-menu

我正在使用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>

6 个答案:

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