Мне нужно преобразовать текстовый файл в массив и отобразить каждую строку массива в операторе выбора. По какой-то причине я могу заставить оператор select отображать номера строк в текстовом файле, а не содержимое каждой строки.
<select name="course">
<option value=""> </option>
<?php
$lines = explode("\n", file_get_contents('courses.txt'));
foreach($lines as $courses => $value):
echo '<option value="'.$courses.'">'.$courses.'</option>';
endforeach;
?>
</select>
Я искал на нескольких разных сайтах, и это, кажется, лучший способ конвертировать файл в массив $lines = explode("\n", file_get_contents('courses.txt'));
поэтому я предполагаю, что это правильно.
Попробуйте изменить значение внутри параметра, чтобы быть $value
вместо $course
, Ты можешь уйти $course
в качестве значения параметра, потому что тогда вы знаете, какой индекс в файле они выбирают при отправке формы.
<select name="course">
<option value=""> </option>
<?php
$lines = explode("\n", file_get_contents('courses.txt'));
foreach($lines as $courses => $value): ?>
<option value="<?= $courses ?>"><?= $value ?></option>
<?php endforeach; ?>
Для удобства чтения:
<select name="course">
<?php
$lines = explode("\n", file_get_contents('courses.txt'));
foreach ($lines as $key => $value) {
echo '<option value="' . $key . '">' . $value . '</option>';
}; ?>
</select>
Я также рекомендовал бы выполнить всю бизнес-логику в контроллере и передать массив представлению, чтобы заполнить раскрывающийся список; но это может выходить за рамки требований для этого вопроса.