Сортировать массив с наивысшими баллами - PullRequest
3 голосов
/ 02 августа 2011

Как отсортировать массив с наивысшими точками?

Пример:

$sale = array();

Array
(
   [UserA] => Array
        (
            [unsuccessful] => 0
            [Points] => 31
            [procesing] => 4
        )
   [UserB] => Array
        (
            [unsuccessful] => 4
            [Points] => 200
            [procesing] => 1
        )
   [UserC] => Array
        (
            [unsuccessful] => 3
            [Points] => 150
            [procesing] => 55
        )
)

Сортировка по точкам, это должно быть по порядку: UserB, UserC, UserA

Ответы [ 3 ]

7 голосов
/ 02 августа 2011
uasort($array, function($a, $b) {
    return $b['Points'] - $a['Points'];
});

Функции uasort() и usort() принимают обратный вызов, который должен точно указать, что делает один элемент больше или меньше другого элемента. Если эта функция возвращает 0, то элементы равны. Если он возвращает положительное число, то второй элемент больше первого. Иначе, первый предмет больше, чем второй.

Разница между uasort() и usort() заключается в том, что uasort() также хранит ключи, а usort() - нет. Также взгляните на сравнение функций сортировки массивов , чтобы узнать обо всех других способах сортировки массивов.

1 голос
/ 02 августа 2011

USort может оказаться полезным:

http://php.net/manual/en/function.usort.php

Также эта другая статья о SO.

Сортировка многомерного массива с помощью usort

1 голос
/ 02 августа 2011

Вы можете использовать функцию php usort для обеспечения собственной логики сортировки. Смотри http://www.php.net/manual/en/function.usort.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...