преобразовать TXT-файл в массив и отобразить его через выбранную позицию

Мне нужно преобразовать текстовый файл в массив и отобразить каждую строку массива в операторе выбора. По какой-то причине я могу заставить оператор 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')); поэтому я предполагаю, что это правильно.

1

Решение

Попробуйте изменить значение внутри параметра, чтобы быть $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; ?>
0

Другие решения

Для удобства чтения:

 <select name="course">
<?php
$lines = explode("\n", file_get_contents('courses.txt'));
foreach ($lines as $key => $value) {
echo '<option value="' . $key . '">' . $value . '</option>';
}; ?>
</select>

Я также рекомендовал бы выполнить всю бизнес-логику в контроллере и передать массив представлению, чтобы заполнить раскрывающийся список; но это может выходить за рамки требований для этого вопроса.

0

По вопросам рекламы [email protected]