Как мне создать массив для диапазона значений с ключами, используя php? - PullRequest
0 голосов
/ 22 ноября 2011

Я использую CodeIgniter.Я хочу создать массив для добавления в выпадающий список, который содержит цифры 1 -> 1000.

Я пробовал функцию php range(), как это таквыпадающий список от 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 ]

9 голосов
/ 22 ноября 2011

Это сформирует ваш массив правильно, используя array_combine :

$array = array_combine( range(1,1000), range(1,1000));
3 голосов
/ 22 ноября 2011

Вы можете создать массив так же, как вы это делаете, просто немного расширив диапазон, затем сбросив 0-й элемент.

$arr = range(0,1000);
unset($arr[0]);
0 голосов
/ 23 ноября 2011

Используйте следующий код

<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>
<? } ?>
0 голосов
/ 22 ноября 2011

Можно использовать устаревший цикл 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>';
0 голосов
/ 22 ноября 2011

Только не используйте атрибут value.
Итак, форма отправит вам опцию.

0 голосов
/ 22 ноября 2011

Другой способ - создать массив с помощью цикла:

for ($i = 1; $i <= 1000; $i++)
    $arr[$i] = $i;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...