У меня есть следующий формат массива в моем PHP-коде:
foreach ($events as $info) { $events_array[] = array( 'title' => $info->Name, 'date' => $info->Date ); } function cb($a, $b) { return strtotime($a['date']) - strtotime($b['date']); } usort($events_array, 'cb');
Изменить: значения даты имеют формат: ГГГГ-ММ-ДД
На самом деле, когда я делаю print_r, я получаю
[title] => SimpleXMLElement Object ( ) [date] => SimpleXMLElement Object ( )
Вы должны создать свою собственную функцию сортировки нескольких столбцов (потому что ваш массив 2-мерный):
array_sort_by_column($events_array, 'date'); var_dump($events_array);
Функция сортировки:
function array_sort_by_column(&$array, $column, $direction = SORT_ASC) { $reference_array = array(); foreach($array as $key => $row) { $reference_array[$key] = $row[$column]; } array_multisort($reference_array, $direction, $array); }
Вы можете использовать функцию USort php.
Посмотрите эту тему:
PHP Сортировка многомерного массива по элементу, содержащему дату