Упорядочить массив по значению ключа - PullRequest
1 голос
/ 29 апреля 2011

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

У меня есть массив, например:

Array
(
    [0] => Array
        (
            [record_id] => 21
            [quality] => 3
        )

    [1] => Array
        (
            [record_id] => 20
            [quality] => 3
        )

    [2] => Array
        (
            [record_id] => 19
            [quality] => 3
        )

    [3] => Array
        (
            [record_id] => 18
            [quality] => 2
        )

    [4] => Array
        (
            [record_id] => 17
            [quality] => 3
        )

)

Мне нужно иметь возможность упорядочивать массив по убыванию (относительно клавиши quality) в порядке возрастания или убывания (когда выбран режим), поэтому, например, он мне нужен упорядочить массив и вернуть его, например,

function order_array($array, $order = 'asc')
{
   if($order == 'asc')
   // order the array from lowest to highest

   if($order == 'desc')
   // order the array from highest to lowest
}

Приветствие.

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

Проверьте функцию usort

function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");
1 голос
/ 29 апреля 2011

Используйте функцию usort:

usort($array, "my_custom_sort_function");
function my_custom_sort_function($a, $b) {
    return $a['quality'] - $b['quality'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...