Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нюансы сортировки natsort()
Покинул форум
Сообщений всего: 25
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Ситуация следующая: сортировка массива с помощью функции natsort выводит у меня названия файлов в одной последовательности, вывод же непосредственно файлов каталога происходит в другой последовательности.
Пример:
$files = array('1.php', '10.php', '11.php','2.php', '20.php', '3.php', '4.php', '5.php');
natsort($files);
print_r($files);
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Мелкий пишет:
natsort изменяет ключи массива
Блин. Отрицание потерял.
Должно быть:
Мелкий пишет:
natsort не изменяет ключи массива
Что вообще-то отлично видно по print_r
Короче говоря, не извращайтесь. Массивы положено итерировать foreach'ом.
----- PostgreSQL DBA
Quick
Отправлено: 17 Ноября, 2014 - 10:35:26
Новичок
Покинул форум
Сообщений всего: 25
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Если добавить в вышеприведённый РНР-скрипт такой код:
$x=1;
foreach ($a as $key=>$value)
{
echo ' <a href="./dir_natsort.php?list=' . $x++ . '"> (' .$value . ')</a> ';
}
то действительно файлы выводятся последовательно, но скрипт навигации надо переделывать.
Вопросом остаётся различие результатов выполнения скрипта на домашнем сервере и на сервере хостинга
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.