Используйте формат ISO (yyyy-mm-dd
), а не "английский" формат, и затем просто используйте ksort
функция для получения их в правильном порядке.
нет никакой потребности удалить дефисы, ksort
сделает алфавитно-цифровое сравнение на строковых ключах, и yyyy-mm-dd
работы формата отлично, поскольку лексический порядок совпадает с фактическим хронологическим порядком.
РЕДАКТИРОВАНИЕ я вижу, что Вы теперь исправили свой вопрос показать, что Вы на самом деле получили массив массивов, и что ключ сортировки находится в подмассивах. В этом случае необходимо использовать uksort
, как рекомендуется в другом месте, но я рекомендовал бы пойти с собственным редактированием и видом на основе отформатированной даты DB, а не путем парсинга человекочитаемого формата:
function cmp($a, $b)
{
global $array;
return strcmp($array[$a]['db'], $array[$b]['db']);
}
uksort($array, 'cmp');
function cmp($a, $b) {
global $array;
return strcmp($array[$a]['db'], $array[$b]['db']);
}
uksort($array, 'cmp');
Думаю, лучше использовать функцию usort ()
вместо uksort ()
, потому что иногда вообще нельзя использовать глобальные переменные и в любом случае использование глобальных переменных тоже не является хорошей практикой.