16.12.2019 15:10

Сортировка массива по ключам на основе другого массива в PHP

Сортировка массива по ключам на основе другого массива в PHP

В этой статье я приведу пример, как сортировать массив по ключам на основе другого массива в PHP. Иногда вам может понадобиться придерживаться правильного порядка ключей в массиве. Однако в самом PHP такой функции нет, но ее легко реализовать. Используйте эту функцию для сортировки массива по ключам на основе другого массива:

function sortArrayByKeysArray(array &$array, array $orderArray)
{
    if (!empty($array) && !empty($orderArray)) {
        $array = array_replace(array_flip($orderArray), $array);
    }
}

Например, давайте возьмем массив с неправильной сортировкой

$array = [
    'first_key' => 'First value',
    'third_key' => 'Third value',
    'second_key' => 'Second value',
    'fifth_key' => 'Fifth value',
    'fourth_key' => 'Fourth value',
];

и отсортируем его в правильном порядке по заданному массиву

$orderArray = [
    'first_key',
    'second_key',
    'third_key',
    'fourth_key',
    'fifth_key',
];

Массив будет отсортирован по значениям в правильном порядке после вызова этой функции:

sortArrayByKeysArray($array, $orderArray);

/**
[output]
array (
    'first_key' => 'First value',
    'second_key' => 'Second value',
    'third_key' => 'Third value',
    'fourth_key' => 'Fourth value',
    'fifth_key' => 'Fifth value',
)
 */

Другие статьи