Как отсортировать php массив по дате
Чтобы отсортировать PHP массив по дате, можно использовать функцию usort(). Эта функция позволяет сортировать массив по значению определенного ключа или поля.
Вот пример того, как можно использовать функцию usort() для сортировки массива по дате:
$records = [
['date' => '2022-01-15', 'title' => 'Record 1'],
['date' => '2022-03-01', 'title' => 'Record 2'],
['date' => '2022-02-20', 'title' => 'Record 3']
];
usort($records, function($a, $b) {
return strtotime($a['date']) - strtotime($b['date']);
});
print_r($records);
В этом примере мы создаем массив с несколькими записями, каждая из которых содержит поле date. Затем мы вызываем функцию usort()
и передаем ей наш массив и функцию сравнения, которая сравнивает значения поля date в каждой записи. Функция strtotime()
преобразует строку с датой в формате YYYY-MM-DD
в Unix timestamp, что позволяет сравнивать даты с помощью чисел.
После сортировки массив будет выглядеть следующим образом:
[
['date' => '2022-01-15', 'title' => 'Record 1'],
['date' => '2022-02-20', 'title' => 'Record 3'],
['date' => '2022-03-01', 'title' => 'Record 2']
]
Таким образом, массив будет отсортирован по дате в порядке возрастания. Если вы хотите отсортировать массив в обратном порядке, можете изменить функцию сравнения следующим образом:
usort($records, function($a, $b) {
return strtotime($b['date']) - strtotime($a['date']);
});
В этом случае массив будет отсортирован по дате в порядке убывания.
Обратите внимание, что функция usort()
сортирует массив на месте, то есть она изменяет исходный массив. Если вы хотите сохранить исходный массив без изменений, можете создать копию массива с помощью функции array_slice()
и сортировать копию, а не исходный массив.