Несколько более сложное решение, которое, тем не менее, работает практически для любого формата даты , основано на функции uksort .
Сначала мы определим функция обратного вызова , которая сравнивает две даты (компаратор):
function compare_date_keys($dt1, $dt2) {
$tm1 = strtotime($dt1);
$tm2 = strtotime($dt2);
return ($tm1 < $tm2) ? -1 : (($tm1 > $tm2) ? 1 : 0);
}
Теперь мы можем использовать только что определенную функцию в качестве второго параметра в uksort, как в примере ниже:
uksort($arr, "compare_date_keys");
В результате функция будет обрабатывать ключ как дату и сортировать массив в порядке возрастания (сначала не так давно).
Обратите внимание, что мы можем легко настроить компаратор для поддержки различных вариантов использования.Например, сортировка по убыванию даты (сначала самая последняя) может быть выполнена путем простой замены выражения возврата функции следующим:
return ($tm1 < $tm2) ? 1 : (($tm1 > $tm2) ? -1 : 0);