 |
 |
Форум сетевых администраторов » Программирование » PHP » Гуру! Срочно нужна помощь!
| Автор |
| Тема |
 |
|
 |
|
|
|
Мерен
|
Гуру! Срочно нужна помощь! |
[сооб. #4473]
03-03-2002 01:51 |
|
Мерен


Зарегистрирован: Feb 2002
Место проживания: Санкт-Петербург
Публикаций: 561
Статус:  |
Народ такая задача
Прога на ПХП с использованием 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
Сообщение было отредактировано ExcErr 03-03-2002 в 02:12
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-03-2002 01:51 |
|
|
Модератор
|
| Не работал с DBA , даже не в курсе что за вещь... |
[сооб. #4594]
07-03-2002 02:57 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Не работал с DBA , даже не в курсе что за вещь , но если это одно и то же что и DBase , то можно попробовать вытащить все в ассоциативный массив а там уже пойдет сортировка массива ...
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-03-2002 02:57 |
|
|
Мерен
|
Ð_то обычная файловая ДБ.
Я могу вытащить... |
[сооб. #4604]
07-03-2002 08:36 |
|
Мерен


Зарегистрирован: Feb 2002
Место проживания: Санкт-Петербург
Публикаций: 561
Статус:  |
Ð_то обычная файловая ДБ.
Я могу вытащить все в массив...
Сортировку нужно вести по дате.
Мне посоветовали дату представить к примеру как 20020402, 20010401...
И уже вести сортировку по ней, но как вытащить из этого массива только часть value???
__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-03-2002 08:36 |
|
|
Модератор
|
| Только часть значений ? это как ? Что собтвенно... |
[сооб. #4612]
07-03-2002 15:20 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Только часть значений ? это как ? Что собтвенно тебе нужно ?
PS Если хочешь отсортировать дату я думаю оптимально было бы конвертнуть ее в unixtime, а там и с периодами просто и со всем остальным .
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-03-2002 15:20 |
|
|
Мерен


Зарегистрирован: Feb 2002
Место проживания: Санкт-Петербург
Публикаций: 561
Статус:  |
Существует массив.
Данные такие:
12::12/02/2002::влдыл влаов валова::лываоылвоалыва
13::31/03/2002::лывоа вылаоывлао::воавораво
т.е. мне нужно вытащить дату и по этой дате сортировать...
т.е. выводить в начале наибольшую дату, а затем меньшую
и наоборот, т.е. по возрастанию и убыванию.... нужна сортировка таким образом.
Ща понятно?
__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-03-2002 15:27 |
|
|
Модератор
|
| Как я понимаю PHP тут не поможет, надо самому... |
[сооб. #4622]
08-03-2002 00:39 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Как я понимаю PHP тут не поможет, надо самому алгоритм придумать . Я бы посоветовал перепахать твой текстовик preg_match'ем в массив где в начале будет идти поле по которому хочешь сортировать а потом сделать сортировку массива .
Можно выдергивать в ассоциативный массив а затем делать ksort или krsort, но тут проблема в том что дата может повторятся а вот имя элемента - нет .
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
08-03-2002 00:39 |
|
|
Администратор
|
| сортировка многомерных массивов осуществляется... |
[сооб. #4623]
08-03-2002 00:46 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
сортировка многомерных массивов осуществляется при помощи функции 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 и наоборот.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
08-03-2002 00:46 |
|
|
Модератор
|
Процитировал мануал .
2 ExcErr : Я так и не понял... |
[сооб. #4669]
09-03-2002 02:17 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Процитировал мануал .
2 ExcErr : Я так и не понял в чем проблема ? Что конкретно не получается ?
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
09-03-2002 02:17 |
|
|
Мерен
|
Всем спасибо, вопрос снимается :=)
Сделал
как... |
[сооб. #4672]
09-03-2002 03:29 |
|
Мерен


Зарегистрирован: Feb 2002
Место проживания: Санкт-Петербург
Публикаций: 561
Статус:  |
Всем спасибо, вопрос снимается :=)
Сделал
как посоветовал polo (за что ему и прибольшое спасибо )
Правда грабли нашел потом еще одни..
Оказывается у меня сортировка не пахала от того, что у меня массив перегонялся в коде пустой.. Просто не досмотрел этого момента сразу Вот и начал ковырять...
А формат даты для сортировки поменял на:
годмесдень
т.е. объединил их!
Спасибо всем еще раз!
__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
09-03-2002 03:29 |
|
|
Модератор
|
| Конечно я так и не понял чем помог поло, это... |
[сооб. #4691]
09-03-2002 15:13 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Конечно я так и не понял чем помог поло, это все было в мане . Но ты тоже молодец, получается спросил ерунду .
PS А сортируй лучше в unixtime , проблем будет меньше .
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
09-03-2002 15:13 |
|
|
Администратор
|
| хмм... в мане всегда почти все есть, но вот иной... |
[сооб. #4699]
09-03-2002 17:05 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
хмм... в мане всегда почти все есть, но вот иной раз не знаешь где найти ответ, если исходить из этого то на почти все вопросы форума можно отвечать "поищи в мане, там есть".
Кстати о датах, верно отмеченно, лучше перевести в секунды, так меньше писанины и удобнее работать.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
09-03-2002 17:05 |
|
|
Модератор
|
| Не но тут странно : если надо работать с массивом... |
[сооб. #4711]
10-03-2002 00:46 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Не но тут странно : если надо работать с массивом логично что надо смотреть раздел array functions . Неправда ли ?!
Т.е. я не согласен что все нужно найти в мане . Ну вот к примеру вопросы : "Как отправлять встроенные в письмо изображения" или "Как перевести многомерный массив в одномерный" в мане не найти .
Хотя Polo , отчасти ты и прав .
PS Надо закрыть тему а то флудим , почем зря .
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
10-03-2002 00:46 |
|
|
Администратор
|
| Нет, вряд-ли флудим, вопрос даже по теме, а... |
[сооб. #4721]
10-03-2002 04:22 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Нет, вряд-ли флудим, вопрос даже по теме, а то по моему лучщий вопрос для обсуждения (пхп), а раздел пустует.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
10-03-2002 04:22 |
|
|
Мерен


Зарегистрирован: Feb 2002
Место проживания: Санкт-Петербург
Публикаций: 561
Статус:  |
Я же уже отметил, что была моя ошибка.
Просто передавал пустой массив и ни один вариант сортировки не пахал.
И из-за того что не досмотрел тот момент бросился распрашивать народ, что и почему.. А тихо и спокойно посидев над кодом продебагив его нашел грабли.
Поло чем помог? Да тем, что дал более четкое описание сортировки нежеле в том мане, который у меня есть, вот и все.
По поводу дыты согласен можно и так.. Но у меня в принципе это не столь принципиально.. Так как я сортирую всего навсего по дню мес и году.
Тут не важно какая данные пойдут первыми.. Если в это день то тут нет разницы что что-то должно обязательно быть первым, а что вторым. Тут стоял вопрос по дате, а не по дате и времени. Если бы как я сказал второй вариант, то да, тут было бы принципиально уже.
А дата типа 200210, не может быть больше 20021029, или может я опять ошибаюсь?
Спасибо еще раз всем!
__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
10-03-2002 15:50 |
|
|


|
Формат времени GMT. Текущее время 13:12.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.12121296 seconds (95.14% PHP - 4.86% MySQL) with 21 queries.
|
 |