Помогите с сортировкой массива

Econaft

Новичок
Есть такой код:
Код:
<?php
$dir = "./anons";

$files = scandir($dir); //сканируем (получаем массив файлов)
natsort($files);

for($i=0; $i<sizeof($files); $i++)
echo ''.$files[$i].';<br>';
?>
Вот так он выводит:
Screenshot_1.jpg
Т.е. так как на сервере. А мне нужно в человекоудобном варианте, т.е. чтобы после 1, следовало 2, а не 10.
Я поставил в код функцию "natsort". Но она не сортирует почему-то.
Подскажите что нужно сделать?
 

AmdY

Пью пиво
Команда форума
Лучше пользуйтесь usort, про проблемы с файловой системой даже в доке в комментах есть отсылка.
 

Andkorol

Новичок
Я поставил в код функцию "natsort". Но она не сортирует почему-то.
natsort всё отлично сортирует (см. Пример #1, обрати внимание на ключи отсортированного массива).
Ты же сам потом своим циклом сбиваешь все результаты сортировки, выводя опять все элементы в порядке возрастания значений ключей массива.
Используй foreach вместо for.
 

Econaft

Новичок
natsort всё отлично сортирует (см. Пример #1, обрати внимание на ключи отсортированного массива).
Ты же сам потом своим циклом сбиваешь все результаты сортировки, выводя опять все элементы в порядке возрастания значений ключей массива.
Используй foreach вместо for.
Я не знаю как foreach записать.
 

Econaft

Новичок
Кто-нибудь знает решение данной проблемы с использоваинем "for"?
 

DIG

Новичок
Партнер клуба
Эта "проблема" решается одним оператором. И если хочешь прямо вот непременно с for то тебе готовое решение:
PHP:
$dir = './anons';
$files = scandir($dir); //сканируем (получаем массив файлов)
natsort($files);

$arr = array_values($files);

for($i=0; $i<sizeof($arr); $i++){
    echo ''.$arr[$i].';<br>';
}
Но это тебе не поможет. Потому что не зная таких простых вещей ты дальше не продвинешься.
 

Econaft

Новичок
@DIG, спасибо!
Просто мне не нужно знать больше, для того что я делаю.
Вообще до этого на хостинге всё работало даже без "natsort".
Но последнее время он там что-то обновил и стало сортироваться вот таким странным образом.
 

Econaft

Новичок
Эта "проблема" решается одним оператором. И если хочешь прямо вот непременно с for то тебе готовое решение:
Вы не подскажете, почему ругается на вот эту строчку:
Код:
for($i=0; $i<sizeof($arr); $i++)
Ошибка такая:
Notice: Undefined offset: 49 in /home/777/сайт.org/docs/blog/index.htm on line 49
anons/

Точнее нет, на вот эту:

Код:
echo ''.$arr[$i].';<br>';
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@WMix, ну ты уж не обижай сразу народ. Народ то не молодой, но не опытный ;)
 
  • Like
Реакции: AmdY

WMix

герр M:)ller
Партнер клуба
Я добро сказал) такие слова как го, черно-жоая скотина, передай, херомантия не употреблял
 
Сверху