У меня длинный многомерный массив, включающий некоторые объекты DateTime. Я хочу отсортировать весь массив на основе объекта [startdate]. Я использую эту функцию usort (на основе множества онлайн-ресурсов и модификаций от различных ошибок). Это не сортировка массива.
Мой массив отформатирован следующим образом. Показаны только начало для краткости.
Array
(
[] => Array
(
[startdate] => DateTime Object
(
[date] => 2019-04-10 19:00:00.000000
[timezone_type] => 3
[timezone] => America/New_York
)
[starttime] => DateTime Object
(
[date] => 2019-04-10 19:00:00.000000
[timezone_type] => 3
[timezone] => America/New_York
)
Вот мой код usort:
function date_compare($a, $b) {
$t1 = $a["startdate"]->format('Y-m-d H:i:s');
$t2 = $b["startdate"]->format('Y-m-d H:i:s');
return $t1 - $t2;
}
usort($allEventsSimple, 'date_compare');
Я также попытался отсортировать объекты DateTime, используя этот код:
function date_compare($a, $b) {
$t1 = var_dump($a[startdate]);
$t2 = var_dump($b[startdate]);
return $t1 - $t2;
}
usort($allEventsSimple, 'date_compare');