Сортирование данных по возрастанию

Никола

Новичок
Сортирование данных по возрастанию

значит вот такая проблема: функция readdir прочитала папку с файлами. От каждого имени я отрезал расширение и "разобрал" получившуюся строку по шаблону при помощи функции split. Шаблон файла "День-Месяц-Год". Данные извлек - всё ок. Но вот проблема с сортировкой заместо расположения даты 1, 2, 3, 4, 5 ... он их выставляет так 1, 10, 11, 12, ..., 20, 21, ...
Помогите, как отсортировать правильно!
 

alpine

Новичок
Никола
Короче идея такая в пхп есть [m]usort[/m] данные преобразуй к инту так intval(str_replace('-', '', $твоя_дата)) и сортируй в усорте.
 

donflash

Вареник клуба
Переведи "День-Месяц-Год" в timestamp и будет тебе счастье
а можно узнать, что такое "timestamp"?
strtotime('01/02/1956');


Но ведь проблема не в этом... Никола, посмотри разные виды сортировок (не только [m]sort[/m], а вообще все виды: [m]array[/m])
 

Vallar_ultra

Любитель выпить :)
2Никола
timestamp - это тип данных :) Число секунд прошедших с 01,01,1970
 

Никола

Новичок
так это понятно, а как быть если данные хранятся в массивах вот такого формата:
PHP:
$bd[$year][$mesyc][$den](["xiti"]or["host"]);
так,что фактически года, месяца, дня не существует - они являются индексами.
Это очень удобно при отображении кол-ва хитов и хостов
PHP:
$bd[2006][12][15]["xiti"];
/*и результатом будет кол-во хитов за 15 декабря 2006 года*/
-~{}~ 19.12.06 21:46:

Но вот как их правильно отсортировать в статистику не знаю!
 

hermit_refined

Отшельник
[m]uksort[/m]($bd[$year][$month], 'natsort');
но логичнее называть файлы по-другому, например YYYY-MM-DD.
и хорошо бы вам выучить английский или хотя бы заглядывать в словари перед тем, как именовать переменные...
 

Никола

Новичок
hermit_refined
то что ты написал неподходит - ошибка!!
а я вот такое решение нашёл:
krsort($bdmes, SORT_NUMERIC);
Но он почему то их сортирует по убыванию (задом наперед).
 

hermit_refined

Отшельник
у тебя ошибка, потому что я месяц по-человечески назвал, а ты даже не посмотрел, что копируешь.
хотя да, здесь логичней [m]ksort[/m] с SORT_NUMERIC, это у меня стереотип сработал.
 

Никола

Новичок
hermit_refined
Это всё понятно, но как их по-человечески отсортировать: 1,2,3,4,5,6,7... а не 31,30,29,28,27...

-~{}~ 19.12.06 22:13:

и я всё заметил и исправил, но это ошибка всёравно.
 

Никола

Новичок
hermit_refined
До ksort() сам уже дочитал, но всё равно СПАСИБО БОЛЬШОЕ!
И я не обманывал, т.к. многострочный массив у меня записан в переменную и я ставил её. Ошибки в данных быть не могло!!!
 
Сверху