Автоматическое заполнение поля выбора с помощью массива в PHP

Если бы у меня была поле выбора

<select><option>...<option></select> 

и у меня был массив значений от 1 до 12

используя php, как я буду автоматически заполнять этот флажок, используя этот массив?

предположим, что массив выглядит так:

 $array = array( 1=>"My first option", 2=> "My second option" ); <select> <?php foreach($array as $key => $value) { ?> <option value="<?php echo $key ?>"><?php echo $value ?></option> <?php }?> </select> 

Вы можете сделать свою собственную простую функцию, как показано ниже:

 function generateSelectFromArray($array){ // echo your opening Select echo "<select>"; // Use simple foreach to generate the options foreach($array as $key => $value) { echo "<option value=' $key '> $value </option>"; } echo "</select>"; } 

Применение:

 $array = array( 1=>"My first option", 2=> "My second option" ); generateSelectFromArray($array); 

Нет единственного способа сделать это, но вы можете сделать что-то вроде:

 <select> <?=getMyOptions()?> </select> 

где getMyOptions () – вызов функции, который извлекает параметры (например, из базы данных) и печатает каждый в формате

 <option value="x">XXX</option> 

Лично я склонен использовать общую функцию, которую я называю printAsOptions (). Эта функция принимает массив объектов. Он ожидает, что объекты в массиве имеют поле под названием «id» и поле «имя». Он выполняет итерацию через массив и печатает вариант, как указано выше для каждого элемента. Таким образом, вы можете создать одну функцию для извлечения массива объектов (например, из базы данных) без смешивания в логике представления. Логика представления обрабатывается общей функцией printAsOptions ().