0

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

<?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);
      ?>

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

4

3 回答 3

1

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

于 2013-06-04T14:15:36.240 回答
0

简单,使用glob

$files = glob(WAVEFORM_RELATIVE_PATH.'/*.png');
sort($files);
foreach($files as $file)
    echo '<option....>'.$file.'</option>';
于 2013-06-04T14:24:09.413 回答
0

一个简单的方法是使用scandir. SCANDIR_SORT_ASCENDING您可以使用( 0) 或SCANDIR_SORT_DESCENDING( )指定排序顺序1

$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";
    }
}
于 2013-06-04T14:35:34.297 回答