Форум сетевых администраторов Страницы (2): [1] 2 »
Показаны 19 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Гуру! Срочно нужна помощь! (http://netadmin.ws/forum/showthread.php?threadid=825)


Помещено ExcErr 03-03-2002 в 01:51:

Exclamation Гуру! Срочно нужна помощь!

Народ такая задача
Прога на ПХП с использованием dba
Тип базы "dba3".

В базе хранятся данные типа:

13::01/02/2002::тут::что-то
...
...
...
01::04/02/2002::хмм тут::и тут что-то

обозначения
13 ... 01 это номер записи, который соответствует ключу!
нужно сделать сортировку по дате по возрастанию и по убыванию, т.е.
asc 01/02/2002 ... 04/02/2002
desc 04/02/2002 ... 01/02/2002

Как это возможно?
Ð_ебята горю поможите!!!

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено RaZEr 07-03-2002 в 02:57:

Не работал с DBA , даже не в курсе что за вещь , но если это одно и то же что и DBase , то можно попробовать вытащить все в ассоциативный массив а там уже пойдет сортировка массива ...

__________________
The time was broken ...


Помещено ExcErr 07-03-2002 в 08:36:

Ð_то обычная файловая ДБ.

Я могу вытащить все в массив...
Сортировку нужно вести по дате.
Мне посоветовали дату представить к примеру как 20020402, 20010401...
И уже вести сортировку по ней, но как вытащить из этого массива только часть value???

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено RaZEr 07-03-2002 в 15:20:

Только часть значений ? это как ? Что собтвенно тебе нужно ?

PS Если хочешь отсортировать дату я думаю оптимально было бы конвертнуть ее в unixtime, а там и с периодами просто и со всем остальным .

__________________
The time was broken ...


Помещено ExcErr 07-03-2002 в 15:27:

2 RaZEr

Существует массив.
Данные такие:

12::12/02/2002::влдыл влаов валова::лываоылвоалыва
13::31/03/2002::лывоа вылаоывлао::воавораво

т.е. мне нужно вытащить дату и по этой дате сортировать...
т.е. выводить в начале наибольшую дату, а затем меньшую
и наоборот, т.е. по возрастанию и убыванию.... нужна сортировка таким образом.

Ща понятно?

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено RaZEr 08-03-2002 в 00:39:

Как я понимаю PHP тут не поможет, надо самому алгоритм придумать . Я бы посоветовал перепахать твой текстовик preg_match'ем в массив где в начале будет идти поле по которому хочешь сортировать а потом сделать сортировку массива .

Можно выдергивать в ассоциативный массив а затем делать ksort или krsort, но тут проблема в том что дата может повторятся а вот имя элемента - нет .

__________________
The time was broken ...


Помещено polo 08-03-2002 в 00:46:

сортировка многомерных массивов осуществляется при помощи функции usort(), то есть в твоем случае если имеется массив
$arr = array ( array("12","12/02/2002","влдыл влаов валова","лываоылвоалыва"),
array ("13","31/03/2002","лывоа вылаоывлао","воавораво"));
то сортировать нужно так:
Во первых написать функцию которая будет сравнивать два значения, вот пример функции:

PHP:


function compare ($a, $b) {
 if (
$a[1] == $b[1])
     return 
0;
 elseif (
$a[1] < $b[1])
     return -
1;
 else
     return 
1;
}
# далее можно использовать функцию usort();
usort($arr, compare);


$a[1] - соответствует второму элементу масива, в даном случае дате.
Если нужно отсортировать в другом порядке нужно поменять местами возвращяемые функцией значения, там где -1 поставить 1 и наоборот.

__________________
Всегда есть решение.


Помещено ExcErr 08-03-2002 в 17:37:

Lightbulb 2 polo

Спасибо большое, попробую!

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено RaZEr 09-03-2002 в 02:17:

Процитировал мануал .

2 ExcErr : Я так и не понял в чем проблема ? Что конкретно не получается ?

__________________
The time was broken ...


Помещено ExcErr 09-03-2002 в 03:29:

Всем спасибо, вопрос снимается :=)
Сделал
как посоветовал polo (за что ему и прибольшое спасибо )
Правда грабли нашел потом еще одни..
Оказывается у меня сортировка не пахала от того, что у меня массив перегонялся в коде пустой.. Просто не досмотрел этого момента сразу Вот и начал ковырять...

А формат даты для сортировки поменял на:
годмесдень
т.е. объединил их!

Спасибо всем еще раз!

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено RaZEr 09-03-2002 в 15:13:

Конечно я так и не понял чем помог поло, это все было в мане . Но ты тоже молодец, получается спросил ерунду .

PS А сортируй лучше в unixtime , проблем будет меньше .

__________________
The time was broken ...


Помещено polo 09-03-2002 в 17:05:

хмм... в мане всегда почти все есть, но вот иной раз не знаешь где найти ответ, если исходить из этого то на почти все вопросы форума можно отвечать "поищи в мане, там есть".

Кстати о датах, верно отмеченно, лучше перевести в секунды, так меньше писанины и удобнее работать.

__________________
Всегда есть решение.


Помещено RaZEr 10-03-2002 в 00:46:

Не но тут странно : если надо работать с массивом логично что надо смотреть раздел array functions . Неправда ли ?!

Т.е. я не согласен что все нужно найти в мане . Ну вот к примеру вопросы : "Как отправлять встроенные в письмо изображения" или "Как перевести многомерный массив в одномерный" в мане не найти .

Хотя Polo , отчасти ты и прав .

PS Надо закрыть тему а то флудим , почем зря .

__________________
The time was broken ...


Помещено polo 10-03-2002 в 04:22:

Нет, вряд-ли флудим, вопрос даже по теме, а то по моему лучщий вопрос для обсуждения (пхп), а раздел пустует.

__________________
Всегда есть решение.


Помещено ExcErr 10-03-2002 в 15:50:

RaZeR

Я же уже отметил, что была моя ошибка.
Просто передавал пустой массив и ни один вариант сортировки не пахал.
И из-за того что не досмотрел тот момент бросился распрашивать народ, что и почему.. А тихо и спокойно посидев над кодом продебагив его нашел грабли.

Поло чем помог? Да тем, что дал более четкое описание сортировки нежеле в том мане, который у меня есть, вот и все.

По поводу дыты согласен можно и так.. Но у меня в принципе это не столь принципиально.. Так как я сортирую всего навсего по дню мес и году.
Тут не важно какая данные пойдут первыми.. Если в это день то тут нет разницы что что-то должно обязательно быть первым, а что вторым. Тут стоял вопрос по дате, а не по дате и времени. Если бы как я сказал второй вариант, то да, тут было бы принципиально уже.
А дата типа 200210, не может быть больше 20021029, или может я опять ошибаюсь?

Спасибо еще раз всем!

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Формат времени GMT. Текущее время 13:20. Страницы (2): [1] 2 »
Показаны 19 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.