将.txt文件转换为数组并通过选择状态显示


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>

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