@krispey15

Php сортировка многомерного массива по дате и по цифровому значению поля?

Есть массив вида:
Array
(
    [0] => Array
        (
            [ID] => 269
            [~ID] => 269
            [MODULE_ID] => iblock
            [~MODULE_ID] => iblock
            [PARAM1] => catalog
            [~PARAM1] => catalog
            [PARAM2] => 2
            [~PARAM2] => 2
            [UPD] => 
            [~UPD] => 
            [DATE_FROM] => 
            [~DATE_FROM] => 
            [DATE_TO] => 
            [~DATE_TO] => 
            [CUSTOM_RANK] => 0
            [~CUSTOM_RANK] => 0
            [FULL_DATE_CHANGE] => 30.06.2022 14:36:38
            [~FULL_DATE_CHANGE] => 30.06.2022 14:36:38
            [DATE_CHANGE] => 30.06.2022
            [~DATE_CHANGE] => 30.06.2022
            [USER_ID] => 
            [~USER_ID] => 
            [TITLE_RANK] => 0
            [~TITLE_RANK] => 0
            [SITE_URL] => 
            [~SITE_URL] => 
            [SITE_ID] => s1
            [~SITE_ID] => s1
            [RANK] => 0.1855
            [PROPERTY_SEARCH_SORT_VALUE] => 300
        )

    [1] => Array
        (
            [ID] => 616
            [~ID] => 616
            [MODULE_ID] => iblock
            [~MODULE_ID] => iblock
            [ITEM_ID] => 10432
            [PARAM1] => catalog
            [~PARAM1] => catalog
            [FULL_DATE_CHANGE] => 17.05.2022 15:15:10
            [~FULL_DATE_CHANGE] => 17.05.2022 15:15:10
            [PARAM2] => 2
            [~PARAM2] => 2
            [PROPERTY_SEARCH_SORT_VALUE] => 300
        )

    [2] => Array
        (
            [ID] => 18748
            [~ID] => 18748
            [MODULE_ID] => iblock
            [~MODULE_ID] => iblock
            [ITEM_ID] => 38726
            [~ITEM_ID] => 38725
            [TAGS] => Array
                (
                )

            [~TAGS] => 
            [PARAM1] => offers
            [~PARAM1] => offers
            [PARAM2] => 3
            [~PARAM2] => 3
            [UPD] => 
            [~UPD] => 
            [DATE_FROM] => 
            [~DATE_FROM] => 
            [DATE_TO] => 
            [~DATE_TO] => 
            [CUSTOM_RANK] => 0
            [~CUSTOM_RANK] => 0
            [FULL_DATE_CHANGE] => 12.04.2022 12:09:40
            [~FULL_DATE_CHANGE] => 12.04.2022 12:09:40
            [DATE_CHANGE] => 12.04.2022
            [~DATE_CHANGE] => 12.04.2022
            [USER_ID] => 
            [~USER_ID] => 
            [TITLE_RANK] => 1
            [~TITLE_RANK] => 1
            [SITE_URL] => 
            [~SITE_URL] => 
            [SITE_ID] => s1
            [~SITE_ID] => s1
            [RANK] => 0.2314
            [PROPERTY_SEARCH_SORT_VALUE] => 499
        )

    [3] => Array
        (
            [ID] => 18790
            [~ID] => 18790
            [MODULE_ID] => iblock
            [~MODULE_ID] => iblock
            [ITEM_ID] => 38811
            [~ITEM_ID] => 38810
            [TITLE] =>
            [~TITLE] => 
            [TAGS] => Array
                (
                )

            [~TAGS] => 
            [PARAM1] => offers
            [~PARAM1] => offers
            [PARAM2] => 3
            [~PARAM2] => 3
            [UPD] => 
            [~UPD] => 
            [DATE_FROM] => 
            [~DATE_FROM] => 
            [DATE_TO] => 
            [~DATE_TO] => 
            [CUSTOM_RANK] => 0
            [~CUSTOM_RANK] => 0
            [FULL_DATE_CHANGE] => 12.04.2022 12:10:25
            [~FULL_DATE_CHANGE] => 12.04.2022 12:10:25
            [DATE_CHANGE] => 12.04.2022
            [~DATE_CHANGE] => 12.04.2022
            [USER_ID] => 
            [~USER_ID] => 
            [TITLE_RANK] => 1
            [~TITLE_RANK] => 1
            [SITE_URL] => 
            [~SITE_URL] => 
            [SITE_ID] => s1
            [~SITE_ID] => s1
            [PROPERTY_SEARCH_SORT_VALUE] => 499
        )
)


Таких элементов в массиве много, я привел пример четырех.

Как отсортировать элементы так, чтобы по полю "PROPERTY_SEARCH_SORT_VALUE" была сортировка от малого к большему, и чтобы если данное поле равно (например элемент $a сортировка 499 == элементу $b с сортировкой 499), то сравнивалось значение даты в поле "FULL_DATE_CHANGE", там где свежее, то этот элемент должен находиться выше по массиву
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы