Как отсортировать массив по дате в формате от и до?
Привет хабр, как возможно отсортировать массив в котором имеется статическая дата по методу от и до?
Я попробовал получить разницу в днях, между двумя датами для сортировки и пустить их в цикл и в цикле конвертировать индекс дня в дату начиная от даты который указана в сортировке типа "от", но ничего не вышло, так как получается двумерный цикл и данные обрабатываются в некорректном порядке.
К примеру мы имеем массив который содержит внутри себя 10 элементов с разными датами, к примеру от 2022-04-01 до до 2022-04-10, юзер хочет отсортировать эти данные по дате с 2022-04-02 по 2022-04-07.
1) Зависит от формата даты. пример массива не помешает. так же как и вариант "такое хочу получить".
2) Если данные получены из бд, правильным ответом будет добавить сортировку в запрос.
baby_2023, я что-то не так понимаю, или вы что-то не то пишете
модуль ориентирован на автоматизированную сортировку в процессе запроса от клиента.
На программистском это значит что модуль берет от пользователя вводные данные (сортировка, лимит выборки, условия) и выдает готовую выборку, в нужном порядке и с нужными ограничениями. Или у вас какие-то другие модули?
Дмитрий, SELECT * FROM table много что вам дал этот запрос? всю логику которую можно выполнить при помощи PHP, я выполняю при помощи PHP, потому как с SQL я знаком на базовых запросах
всю логику которую можно выполнить при помощи PHP, я выполняю при помощи PHP, потому как с SQL я знаком на базовых запросах
Мало тебя в детстве... в угол ставили... Все что можно сделаеть на уровне бд средствами бд, НИКОГДА не выносится на уровень приложения. Так как это как минимум двойная работа и лишняя трата памяти.
baby_2023, на самом деле достаточно дал)
select *, unix_timestamp as dt from table
В массиве появится поле для простоты нужного вам действия, так же продолжите без углубления в sql
Просто надо будет фильтровать массив, просто по числам проще будет, чем по строкам https://www.php.net/manual/ru/function.array-filter.php
Как из даты получить timestamp думаю догадаетесь
baby_2023, если посмотреть, как реализуются типичные выражения select, то окажется, что дальше секции from есть именно те секции этого выражения, которые могут и отсечь лишнее, и отсортировать, не отходя от кассы, то есть от SQL.
Дмитрий, в эскуеле по сути бетвин это алиас на это выражение, но в случае построения запроса, выгоднее использовать именно сравнение, так как верхняя или нижняя граница может быть не определена, а бетвин требует оба аргумента.
Если я правильно понял проблему, то это можно сделать в два действия: отсортировать весь массив по дате, а потом взять из него кусочек в соответствии с вашими "от", "до"