我需要将文本文件转换为数组,并在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'));
的最佳方式,所以我认为这是正确的。
答案 0 :(得分:0)
尝试将选项中的值更改为$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; ?>
答案 1 :(得分: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>
我还建议在控制器中执行所有业务逻辑,并将数组传递给视图以填充下拉列表;但这可能超出了这个问题的要求范围。