Почему вы читаете все имена файлов с помощью scandir (), а затем просматриваете их с помощью метода readdir ()? Вы могли бы просто сделать это:
<?php
$dirname = "images/";
$images = scandir($dirname);
// This is how you sort an array, see http://php.net/sort
sort($images);
// There's no need to use a directory handler, just loop through your $images array.
foreach ($images as $file) {
if (substr($file, -4) == ".gif") {
print "<option value='$file'>$file</option>\n"; }
}
}
?>
Также вы можете использовать natsort () , который работает так же, как sort () , но сортирует в «естественном порядке». (Вместо сортировки по 1,10,2,20
он будет сортироваться по 1,2,10,20
.)