У меня есть такой массив:
Array
(
[0] => Array
(
[id] => 2
[type] => comment
[text] => hey
[datetime] => 2010-05-15 11:29:45
)
[1] => Array
(
[id] => 3
[type] => status
[text] => oi
[datetime] => 2010-05-26 15:59:53
)
[2] => Array
(
[id] => 4
[type] => status
[text] => yeww
[datetime] => 2010-05-26 16:04:24
)
)
Может ли кто-нибудь предложить способ отсортировать / упорядочить это на основе элемента datetime?
$a
и$b
будет содержать массивы внутри$array
. Убедитесь, что вы не ошиблись при написании имени функции.usort($array, array($this, "date_compare"))
чтобыusort()
он знал, что это функция / метод класса. См. Также: php.net/manual/en/…Это должно работать. Я преобразовал дату в unix-время через strtotime.
Однострочная версия будет использовать несколько методов массива:
источник
Из php7 вы можете использовать оператор Spaceship :
источник
http://us2.php.net/manual/en/function.array-multisort.php см. третий пример:
fyi, использование unix (секунды с 1970 года) или mysql timestamp (YmdHis - 20100526014500) было бы проще для парсера, но я думаю, что в вашем случае это не имеет значения.
источник
Сортировка массива записей / assoc_arrays по указанному полю даты и времени mysql и по порядку:
источник
str_to_upper
наstrtoupper
.источник
Вы можете просто решить эту проблему, используя usort () с функцией обратного вызова. Нет необходимости писать какие-либо пользовательские функции.
источник
Я наткнулся на этот пост, но хотел отсортировать по времени при возврате элементов внутри моего класса, и у меня возникла ошибка.
Итак, я исследую сайт php.net и в итоге делаю следующее:
Вы можете найти очень полезные примеры на сайте PHP.net
Мой массив выглядел так:
источник
Для
'd/m/Y'
свиданий:где
$i
индекс массиваисточник
Для тех, кто все еще пытается решить эту проблему внутри класса с функцией sortByDate, см. Код ниже
источник