Forum Webscript.Ru
Программирование => PHP => Тема начата: DLama от 04 Января 2003, 05:15:04
-
Во первых, поздравляю всех с Новым Годом и желаю всего самого наилучшего.
А во вторых головоломка.
Впрочем наверное не совсем головоломка. Точнее наверное это головоломка для меня :)
Вообщем так:
Есть цикл который выводит имена файлов из директории, в которой сам находиться. Просто и сердито:
$handle=opendir(".");
echo "Directory handle: $handle
";
echo "Files:
";
while ($file = readdir($handle)) {
echo "$file
";
}
Результат:
Files:
.
..
3amssota.jpg
2amssota.jpg
4amssota.jpg
1amssota.jpg
Всё бы хорошо, но надо, что бы результат выдавался в алфавитном порядке, или обратном алфавитном порядке а не как вздумается readdir($handle)
Всем спасибо, кто найдёт возможным помочь мне.
-
Вместо echo "$file
" засунь все имена в массив, отсортируй его как тебе надо, а потом уже выводи на печать.
-
Спасибо, мысль понятна, только вот каким реально кодом это сделать не пойму.
Добавил в цикл функцию сортировки
while ($file = readdir($handle)) {
asort ($file);
echo "$file
";
}
- получил ошибку.
Дословно не помню, но смысл похоже в том, что сортировать то типа нечего.
Если возможно, подскажите, пожалуйста, какой-нибудь код для примера, спасибо.
-
Массив не создается - поэтому и сортировать нечего.... за один цикл не управишься...
Сначала создай массив. Что-то типа так...
......
while ($file = readdir($handle)) {
$files[]=$file;
}
....
Потом отсортируй массив $files и следующим циклом выводи на печать.... Уже писали выше....
-
Вот какой-нибудь код (не проверял)
while ($file[] = readdir($handle)) {} // читаем все имена файлов в массив
sort ($file); // сортируем полученный массив
foreach ($file as $fname) { // выводим отсортированный массив
print "$fname
";
}
-
Разобрался, заработало, УРА
Спасибо большое за помощь :)