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

时间:2016-03-08 19:59:24

标签: php file-handling

我需要将文本文件转换为数组,并在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'));的最佳方式,所以我认为这是正确的。

2 个答案:

答案 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>

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