0

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

現時点では、完全にランダムな順序で結果を返しています。リストをアルファベット順に表示するにはどうすればよいですか?

4

3 に答える 3

1

ファイル名を配列に保存し、配列をソートしてから、それらを選択オプションで使用できる場合があります

于 2013-06-04T14:15:36.240 に答える
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 に答える
0

シンプルで、globを使用します。

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