В PHP у меня есть массив объектов, и мне нужно отсортировать его, начиная с самой последней даты с сегодняшнего дня и заканчивая выходом. Даты хранятся в виде строк только с месяцем и днем.
Я могу использовать usort с функцией, как показано ниже, чтобы отсортировать ее в хронологическом порядке, но я борюсь с тем, как отсортировать ее по сравнению с сегодняшней датой.
function date_sort($a, $b) {
return strtotime($a->bday) - strtotime($b->bday);
}
usort($users, "date_sort");
Исходный массив выглядиткак это:
$users = array(
[0] => stdClass Object
(
[name] => Tim
[bday] => September 13
)
[1] => stdClass Object
(
[name] => Scott
[bday] => November 8
)
[2] => stdClass Object
(
[name] => Bob
[bday] => October 13
)
[3] => stdClass Object
(
[name] => Dan
[bday] => February 2
)
[4] => stdClass Object
(
[name] => Jack
[bday] => July 11
)
)
Если сегодня 8 октября, мне нужно, чтобы отсортированный массив выглядел так:
$users = array(
[0] => stdClass Object
(
[name] => Bob
[bday] => October 13
)
[1] => stdClass Object
(
[name] => Scott
[bday] => November 8
)
[2] => stdClass Object
(
[name] => Dan
[bday] => February 2
)
[3] => stdClass Object
(
[name] => Jack
[bday] => July 11
)
[4] => stdClass Object
(
[name] => Tim
[bday] => September 13
)
)