将 .txt 文件转换为数组并通过 select 语句显示

convert .txt file to array and display via select stament

我需要将文本文件转换为数组,并在 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>

我还建议在控制器中执行所有业务逻辑并将数组传递给视图以填充下拉列表;但这可能超出了这个问题的要求范围。