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

Форум PHP

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

 

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

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

тема: сортировка внутри cvs файла
 
 автор: Sakh   (05.05.2007 в 11:02)   письмо автору
 
 

есть файл cvs первая ячейка содержит дату и время, но значения идут не по порядку
можно как то упорядочить данный файл в порядке возрастания даты/времени?


...
1803;2.6.2006 17:40:00;5;1;11878;14;16
1804;2.6.2006 13:45:00;5;1;11878;14;22
1805;2.6.2006 17:50:00;5;1;11878;8;25
1806;2.6.2006 17:55:00;5;1;11878;26;33
1807;2.6.2006 18:00:00;5;1;11878;9;23
1808;2.6.2006 9:05:00;5;1;11878;1;22
1809;2.6.2006 18:10:00;5;1;11878;4;15
1810;2.6.2006 18:15:00;5;1;11878;2;5
1811;3.6.2006 9:50:00;5;1;11878;1;0
1812;3.6.2006 9:55:00;5;1;11878;24;6
1813;3.6.2006 10:00:00;5;1;11878;14;3
1814;3.6.2006 10:05:00;5;1;11878;21;4
1815;3.6.2006 10:10:00;5;1;11878;20;12
1816;3.6.2006 10:15:00;5;1;11878;22;17
1817;3.6.2006 10:20:00;5;1;11878;27;24
1818;3.6.2006 10:25:00;5;1;11878;19;15
...

   
 
 автор: Trianon   (06.05.2007 в 00:19)   письмо автору
 
   для: Sakh   (05.05.2007 в 11:02)
 

Может быть всё же CSV?

   
 
 автор: Sakh   (06.05.2007 в 15:46)   письмо автору
 
   для: Trianon   (06.05.2007 в 00:19)
 

csv

   
 
 автор: Trianon   (06.05.2007 в 16:12)   письмо автору
 
   для: Sakh   (06.05.2007 в 15:46)
 

Если файл относительно небольшой, можно сделать $list = file($name); дальше применить usort и с помощью foreach вывести результат назад в файл.

Если файл длинный, а операция разовая, стоит сделать это руками прямо в excel.

Если файл длинный, а операция частая, имеет смысл подумать, может быть его вообще не надо сортировать. А надо либо импортировать в БД, либо проинедксировать относительно коротким индексом.

   
 
 автор: Sakh   (06.05.2007 в 17:24)   письмо автору
 
   для: Trianon   (06.05.2007 в 16:12)
 

а можно пример первого способа ?
я недавно с php работаю.... :(

спасибо

   
 
 автор: kasmanaft   (06.05.2007 в 21:27)   письмо автору
 
   для: Sakh   (06.05.2007 в 17:24)
 

Что-то вроде этого...

<?php
$text 
"1803;2.6.2006 17:40:00;5;1;11878;14;16
1804;2.6.2006 13:45:00;5;1;11878;14;22
1808;2.6.2006 9:05:00;5;1;11878;1;22
1809;2.6.2006 18:10:00;5;1;11878;4;15
1810;2.6.2006 18:15:00;5;1;11878;2;5
1818;3.6.2006 10:25:00;5;1;11878;19;15
1811;13.6.2006 9:50:00;5;1;11878;1;0
1815;3.6.2006 10:10:00;5;1;11878;20;12"
;
$text explode("\r\n"$text);
function 
func($a$b)
{
    
$a explode(";"$a);
    
$b explode(";"$b);
    
$a strtotime($a[1]);
    
$b strtotime($b[1]);
    if (
$a == $b)
        return 
0;
    return (
$a $b) ? -1;
}
usort($text"func");
echo 
implode("<br>"$text);
?>

   
 
 автор: Sakh   (11.05.2007 в 08:42)   письмо автору
 
   для: kasmanaft   (06.05.2007 в 21:27)
 

пример работает
а рабочий csv не хочет :(

"ID";"Day";"Interval";"ID1";"ID2";"In";"Out"
1;15.5.2006 10:10:00;2;1;11878;8;1
2;15.5.2006 10:15:00;5;1;11878;10;11
3;15.5.2006 10:20:00;5;1;11878;10;7
4;16.5.2006 9:25:00;5;1;11878;5;15
5;15.5.2006 10:30:00;5;1;11878;16;8
6;15.5.2006 10:35:00;5;1;11878;13;13
7;14.5.2006 15:40:00;4;1;11878;11;4
8;15.5.2006 10:43:03;3;1;11878;15;8
9;15.5.2006 11:05:00;3;1;11878;10;12
10;15.5.2006 11:10:00;5;1;11878;24;11
11;15.5.2006 11:15:00;5;1;11878;18;10
12;15.5.2006 11:20:00;5;1;11878;12;25
...


...

22655;18.1.2007 17:30:00;5;1;11878;17;13
22656;18.1.2007 17:35:00;5;1;11878;9;13
22657;18.1.2007 17:40:00;5;1;11878;7;12
22658;18.1.2007 17:45:00;5;1;11878;5;4
22659;18.1.2007 17:50:00;5;1;11878;4;9
22660;18.1.2007 17:55:00;5;1;11878;3;13
22661;18.1.2007 18:00:00;5;1;11878;3;10
22662;18.1.2007 18:05:00;5;1;11878;0;4
22663;19.1.2007 9:20:00;5;1;11878;0;1
22664;19.1.2007 9:25:00;5;1;11878;1;1
22665;19.1.2007 9:30:00;5;1;11878;0;3
22666;19.1.2007 9:50:00;5;1;11878;0;1
22667;19.1.2007 9:55:00;5;1;11878;6;4

   
Rambler's Top100
вверх

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