PHP usort(): сортировка массива по двум (нескольким) полям (параметрам)
Настраиваю сортировку с помощью usort().
Нужно отсортировать полученные с помощью get_posts() записи по двум полям сразу. Сортировка нужна именно для PHP. Как сортировать данные в базе данных об этом я знаю.
Пример того, что у меня есть и что мне нужно. Есть массив объектов:
Array ( [0] => stdClass Object ( [laps] => 25 [time_ms] => 3143413 ) [1] => stdClass Object ( [laps] => 25 [time_ms] => 3146280 ) [2] => stdClass Object ( [laps] => 24 [time_ms] => 3149972 ) [3] => stdClass Object ( [laps] => 24 [time_ms] => 3162714 ) )
Нужна функция для usort(), которая отсортирует этот массив по полую laps
, а затем по time_ms
.
П.С. Задача интересная, поэтому решил что поможете. У самого пока не получается...
Здравствуйте интересный вопрос. Когда-то сталкивался с такой задачей тоже... Вот код который вам поможет:
Здесь в $array нужно указать ваши поля по порядку, какое первое и второе. В значениях asc и desc - это порядок сортировки...
Функция для сортировки массива с объектами
Функция на основе первого примера, с которой удобно работать.
Передаете в $array массив объектов (можно массив массивов), указываете в $args параметры сортировки и получаете отсортированный массив объектов.
Пример:
Еще одни пример сортировки по нескольким полям
Допустим у нас есть массив:
Нам нужно отсортировать его, сначала по числу в строке, а затем по букве. Делаем так:
Получим:
Спасибо тебе добрый человек)