按字母顺序显示opendir会产生一个选择列表

时间:2013-06-04 14:11:36

标签: php alphabetical opendir

我正在使用以下内容填充select元素:

<?php
      $files2 = opendir(WAVEFORM_RELATIVE_PATH);
      while (false!==($READ=readdir($files2))) {
        if (in_array(substr(strtolower($READ),-4),array('.png'))) {
            echo '<option'.($TRACKS->waveform==$READ ? ' selected="selected"' : '').'>'.$READ.'</option>'."\n";
        }
      }
      closedir($files2);
      ?>

目前,它以完全随机的顺序返回结果。如何按字母顺序显示列表?

3 个答案:

答案 0 :(得分:1)

可能是您可以将文件名存储在数组中,对数组进行排序,然后在选择选项中使用它们

答案 1 :(得分:0)

简单,使用glob

$files = glob(WAVEFORM_RELATIVE_PATH.'/*.png');
sort($files);
foreach($files as $file)
    echo '<option....>'.$file.'</option>';

答案 2 :(得分:0)

一种简单的方法是使用scandir。您可以使用SCANDIR_SORT_ASCENDING0)或SCANDIR_SORT_DESCENDING1)指定排序顺序:

$files2 = scandir(WAVEFORM_RELATIVE_PATH, SCANDIR_SORT_ASCENDING);
foreach($files2 as $file) {
    if (in_array(substr(strtolower($file), -4), array('.png'))) {
        echo '<option'.($TRACKS->waveform==$file? ' selected="selected"' : '').'>'.$file.'</option>'."\n";
    }
}