|
|
|
| Доброго Вам времени.
Уважаемые гуру, вот столкнулся с проблемой сортировки.
есть например массив
[47] => 21.03
[48] => 21.03.1843
[49] => 22.03
[50] => 23.03
[51] => 24.03.1999
[52] => 27.03
[53] => 27.03.1983
[54] => 18.03
[55] => 25.03
продолжение массива но месяц другой
[56] => 21.04
[57] => 21.04.1843
[58] => 22.04
[59] => 23.04
[60] => 24.04.1999
[61] => 27.04
[62] => 27.04.1983
[63] => 18.04
[64] => 25.04
обратите внимание на последние две записи в обоих половинах масива,
вообше все записи по дате сортируются еще в процессе запроса из базы данных, но есть даты которые обозначаются как например
U3.03
U5.03
они после считывания из базы вычисляются в реальные даты и добавляются в тот массив.
и соответсвенно получаются в конце каждого месяца
вот как можно теперь отсортировать массив что бы он стал нормальным?
Я мучался с SORT() ноничег оне получается.
всегда получаеться типа
18.03
18.04
20.03.1843
20.04.1843
21.03
21.04
22.03
22.04
23.03
23.04
24.03.1999
24.04.1999
25.03
25.04
27.03
27.03.1983
27.04
27.04.1983
а надо что бы по месяцам было | |
|
|
|
|
|
|
|
для: kazakru
(20.07.2006 в 17:22)
| | Вам нужно вычислить массив реальных дат этого года, и отсортировать его по значению меток времени. | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2006 в 19:03)
| | хм, а нет например чего либо подобного что бы просто указать что надо отсортировать по 4 и 5 символу...
а по значению меток времени как отсортировывать? | |
|
|
|
|
|
|
|
для: kazakru
(20.07.2006 в 21:26)
| | можно так попробовать ($arr искомый массив):
<?php
// вытаскиваем месяц вперёд
function make(&$item){
list($day,$month,$year) = explode(".",$item);
$item = $month.".".$day.".".$year;
}
// возвращаем всё обратно
function make2(&$item){
list($month,$day,$year) = explode(".",$item);
$item = $day.".".$month;
if(!empty($year)) $item .= ".".$year;
}
array_walk($arr,'make');
asort($arr);
array_walk($arr,'make2');
print_r($arr);
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(20.07.2006 в 23:29)
| | воо, сенкс счас пойду пробовать
а скажите уважаемые гуру
реально ли сделать что бы например в каком либо цикле с неизвестным количеством проходов , после каждого прохода данные записывались бы в свой массив автоматически создаваемый.
тоесть первый проход в массив $qwe1[] записались бы данные
при втором в $qwe2[] и так далее.
и если это реально то подскажите заодно как можно потом соединить несколько массивов последовательно ?
просто я подумал что мне достаточно из базы вытащить все данные сразу только каждый месяц в свой массив, отсортировать ( там проблем не будет ) и соединить массивы последовательно | |
|
|
|
|
|
|
|
для: kazakru
(21.07.2006 в 00:04)
| | Функция array_merge объединяет массивы.
Только нафига такой огород городить? | |
|
|
|