Как отсортировать массив и получить на выходе ключи объектов

271
28 октября 2017, 17:59

Есть следующий алгоритм, написанный мной на JS:

proposals_map = Object.keys(proposals).sort((a,b) => {
    proposals[a].terms[Object.keys(proposals[a].terms)[0]].unified_price - 
    proposals[b].terms[Object.keys(proposals[b].terms)[0]].unified_price
});

Этот код работает медленно, да и к тому же вызывает подёргивания на странице. Хочу переписать алгоритм на PHP, чтобы сортировка выполнялась на сервере и не грузила клиент. Чем и какими функциями можно реализовать подобное на PHP? Опишите, пожалуйста, алгоритм в двух словах.

UDP: результатом работы алгоритма должен быть не отсортированный массив, а ключи отсортированного массива.

Answer 1

Для сортироваки массива с сохранением ключей в php используется функция uasort(). Для получения ключей - array_keys()

$result = array_keys(uasort($data, function($a, $b){ 
                       return $a['unified_price'] - $b['unified_price'];
               }));
Answer 2

Например функцией usort($a, "sorting");

function sorting($a, $b) {
    return unified_price - unified_price;
}
READ ALSO
Как хранить токены и пароли, которые необходимы для работы приложения?

Как хранить токены и пароли, которые необходимы для работы приложения?

ПриветствуюМне в приложении, например, нужно обращаться к базе, а значит нужно как-то получать и хранить логин, пароль для базы; нужно обращаться...

413
Граница слова preg_replace

Граница слова preg_replace

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

212
Как применить двойную сортировку?

Как применить двойную сортировку?

Имею проблему с сортировкой в таблицеЕсть стандартное строение листа(таблицы):

221
Вопрос по работе с свойствами класса

Вопрос по работе с свойствами класса

Здравствуйте, хочу реализовать одну вещь, суть ее в следующем: Есть класс А, в нем метод method и свойство atribute и файл, например indexphp

211