[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отсортировать массив по таймштампу
RCuPeR
Имеем вот такой массив:
Свернутый текст

Array
(
[
0] => Array
(
[
dest_in_id] => 1
[dest_user_id] => 37251
[dest_inv_user_id] => 37247
[dest_timestamp] => 1387168510
[dest_destination_id] => 64
)

[
1] => Array
(
[
gi_in_id] => 3
[gi_user_id] => 37251
[gi_inv_user_id] => 14564
[gi_timestamp] => 1345220045
[gi_group_id] => 2
)

[
2] => Array
(
[
dest_in_id] => 2
[dest_user_id] => 37251
[dest_inv_user_id] => 37257
[dest_timestamp] => 1387168510
[dest_destination_id] => 64
)

[
3] => Array
(
[
gi_in_id] => 3
[gi_user_id] => 37251
[gi_inv_user_id] => 14564
[gi_timestamp] => 1345220045
[gi_group_id] => 2
)

)




Нужно пересмотреть разницу в таймштампах каждого массива и если она <= сутками (86400), то создать массив типа:
Свернутый текст


Array
(
[
1387168510] => Array
(
[
0] => Array
(
[
dest_in_id] => 1
[dest_user_id] => 37251
[dest_inv_user_id] => 37247
[dest_timestamp] => 1387168510
[dest_destination_id] => 64
)

[
1] => Array
(
[
dest_in_id] => 2
[dest_user_id] => 37251
[dest_inv_user_id] => 37257
[dest_timestamp] => 1387168510
[dest_destination_id] => 64
)
)

[
1345220045] => Array
(
[
0] => Array
(
[
gi_in_id] => 3
[gi_user_id] => 37251
[gi_inv_user_id] => 14564
[gi_timestamp] => 1345220045
[gi_group_id] => 2
)

[
1] => Array
(
[
gi_in_id] => 3
[gi_user_id] => 37251
[gi_inv_user_id] => 14564
[gi_timestamp] => 1345220045
[gi_group_id] => 2
)
)

)




Важное примечание! Ключи массивов могут быть разные!

Сразу обратился к функции usort. Хотел сделать что-то типа такого:
            usort($aInvitesRows, function($a, $b) {
$akey = array_keys($a);
$bkey = array_keys($b);

if (($b[preg_grep("/(.*?)_timestamp/", $bkey)[3]] - $a[preg_grep("/(.*?)_timestamp/", $akey)[3]]) <= 86400) {
return $b[preg_grep("/(.*?)_timestamp/", $bkey)[3]] = array($a, $b);
}
}
);


Успехом эта затея не увенчалась :(

На данном этапе, с помощью usort смог только отсортировать по таймштампам(*), что дальше делать - не знаю, обращаюсь за помощью!

*
Свернутый текст


$aSort = array();
usort($aInvitesRows, function($a, $b) {
$akey = array_keys($a);
$bkey = array_keys($b);

return strcmp($b[preg_grep("/(.*?)_timestamp/", $bkey)[3]], $a[preg_grep("/(.*?)_timestamp/", $akey)[3]]);
});



_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.