Как отсортировать php массив по дате

Аватар пользователя Сергей Мишин
Сергей Мишин
25 декабря 2022

Чтобы отсортировать 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() и сортировать копию, а не исходный массив.

0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки