Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Рассортировать масив по дате
 
 автор: Гость   (01.11.2007 в 11:23)   письмо автору
 
 

Проблема.
Вообщем есть масив вида:

$row[]="21.11.07 Пппп";
$row[]="13.11.07 Ттттт";
$row[]="14.11.07 Что-то еще";

Его надо рассортировать по датам. Пробовал natsort и что-только не пробовал. Не помогает. Есть функции сортировки даты? Как вариант разбить $row[x] по дате и всему уже остальному, и сортировать уже исключительно по дате, но у меня не получилось. А писать свой емкий алгоритм не хочется. Наверника есть решения попроще.

   
 
 автор: sim5   (01.11.2007 в 12:30)   письмо автору
 
   для: Гость   (01.11.2007 в 11:23)
 

У вас это готовый архив или вы сами его так формируете?

   
 
 автор: mihdan   (01.11.2007 в 13:00)   письмо автору
 
   для: Гость   (01.11.2007 в 11:23)
 

Может так (хотя сам не пробовал


<?
foreach ($row as $foo) {
     
//list($date, $str) = explode(' ', $foo);
     
$date substr($foo08);
     
$str substr($foo8);
     
$bar [$str] = $date;
}
natsort($bar);
?>

   
 
 автор: Pistolet   (01.11.2007 в 13:13)   письмо автору
 
   для: mihdan   (01.11.2007 в 13:00)
 

Если в массиве будут не только 2007 года, то всё собьётся. Нужно переводить дату в "dmGs" и после сортировать, но опять же, если в массиве есть дата до эпохи уникса, то всё пойдёт на смарку.

   
 
 автор: Гость   (01.11.2007 в 13:23)   письмо автору
 
   для: Pistolet   (01.11.2007 в 13:13)
 

В массиве будут даты только от 2007 и более годов.

Массив готовый.

   
 
 автор: Гость   (01.11.2007 в 13:25)   письмо автору
 
   для: mihdan   (01.11.2007 в 13:00)
 

Таким образом не помогает. Он в первую очередь по дням тут сортирует.

   
 
 автор: sim5   (01.11.2007 в 14:02)   письмо автору
 
   для: Гость   (01.11.2007 в 13:25)
 

Я бы на вашем месте сделал бы массив тогда таким:


<?
$array 
= array(1193912411 => 'text date'1193915117 => 'text date',....)

где ключем служит дата полученная как time(). Вам бы проще было не только сортировать его, но и делать из него выборки.

   
 
 автор: Pistolet   (01.11.2007 в 13:53)   письмо автору
 
   для: Гость   (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);


Как-то так...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования