|
|
|
| Проблема.
Вообщем есть масив вида:
$row[]="21.11.07 Пппп";
$row[]="13.11.07 Ттттт";
$row[]="14.11.07 Что-то еще";
Его надо рассортировать по датам. Пробовал natsort и что-только не пробовал. Не помогает. Есть функции сортировки даты? Как вариант разбить $row[x] по дате и всему уже остальному, и сортировать уже исключительно по дате, но у меня не получилось. А писать свой емкий алгоритм не хочется. Наверника есть решения попроще. | |
|
|
|
|
|
|
|
для: Гость
(01.11.2007 в 11:23)
| | У вас это готовый архив или вы сами его так формируете? | |
|
|
|
|
|
|
|
для: Гость
(01.11.2007 в 11:23)
| | Может так (хотя сам не пробовал
<?
foreach ($row as $foo) {
//list($date, $str) = explode(' ', $foo);
$date = substr($foo, 0, 8);
$str = substr($foo, 8);
$bar [$str] = $date;
}
natsort($bar);
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(01.11.2007 в 13:00)
| | Если в массиве будут не только 2007 года, то всё собьётся. Нужно переводить дату в "dmGs" и после сортировать, но опять же, если в массиве есть дата до эпохи уникса, то всё пойдёт на смарку. | |
|
|
|
|
|
|
|
для: Pistolet
(01.11.2007 в 13:13)
| | В массиве будут даты только от 2007 и более годов.
Массив готовый. | |
|
|
|
|
|
|
|
для: mihdan
(01.11.2007 в 13:00)
| | Таким образом не помогает. Он в первую очередь по дням тут сортирует. | |
|
|
|
|
|
|
|
для: Гость
(01.11.2007 в 13:25)
| | Я бы на вашем месте сделал бы массив тогда таким:
<?
$array = array(1193912411 => 'text date', 1193915117 => 'text date',....)
|
где ключем служит дата полученная как time(). Вам бы проще было не только сортировать его, но и делать из него выборки. | |
|
|
|
|
|
|
|
для: Гость
(01.11.2007 в 11:23)
| |
foreach ($row as $foo) {
$date = substr($foo, 0, 8);
$str = substr($foo, 8);
$bar[] = date('dmGs',strtotime($date)).$str;
}
natsort($bar);
|
Как-то так... | |
|
|
|