Упорядочить массив по значению ключа

php arrays sorting

1967 просмотра

2 ответа

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

У меня есть массив, как это:

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
}

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

Автор: MacMac Источник Размещён: 12.11.2019 09:24

Ответы (2)


4 плюса

Решение

Проверьте функцию 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");
Автор: mdaguerre Размещён: 28.04.2011 08:44

1 плюс

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

usort($array, "my_custom_sort_function");
function my_custom_sort_function($a, $b) {
    return $a['quality'] - $b['quality'];
}
Автор: Halcyon Размещён: 28.04.2011 08:44
Вопросы из категории :
32x32