我需要将文本文件转换为数组,并在 select 语句中显示数组的每一行。 出于某种原因,我只能让 select 语句显示.txt文件中的行号,而不是每行的内容。
<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>
我还建议在控制器中执行所有业务逻辑,并将数组传递给视图以填充下拉列表;但这可能超出了此问题的要求范围。