Сортировка многомерного массива по значению

Решение задачи как отсортировать многомерный массив по значению, чтобы при этом сохранить все ключи элементов массива.

Сортировка многомерного массива по значению

  В php более десятка различных методов для сортировки массивов. Но невсегда с помощью только метода можно решить задачу сортировки. Вот одна из таких задач.

Допустим у нас есть вот такой многомерный php-массив с одинаковыми по структуре элементами

'people' => [
    'qwerty' => [
        'name' => 'Иванов',
        'active' => true,
        'order' => 3
    ],
    'ytrewq' => [
        'name' => 'Петров',
        'active' => false,
        'order' => 1
    ],
    'asdfgh' => [
        'name' => 'Сидоров',
        'active' => true,
        'order' => 2
    ]
];

У каждого из элементов массива есть параметр order по которому собственно и нужно отсортировать элементы массива. При этом ключи элементов массива должны сохраниться.

Для решения задачи воспользуемся методом uasort() в сочетании с вот такой небольшой функцией:

$people = ['people'];

function build_sorter($key) {
    return function($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

uasort($people, build_sorter('order'));

 

Записи по теме
Методы массивов JavaScript
массив Методы массивов в JavaScript и примеры их использования: push, pop, unshift, shift, split, join, slice, splice, reverse, map, filter, reduce, sort, includes ...
Сортировка числового массива
Сортировка числового массива Как правильно отсортировать массив из чисел в javascript. Готовое решение для сортировки данных в числовых массивах.

 

 

Комментарии 0

*** чтобы писать комментарии.