Сортировать ключи массива основываясь на значениях другого массива

Есть массив с данными $data, где ключи не упорядочены

$data = [
    17 => [],
    8 => [],
    15 => [],
    19 => [],
    1 => [],
];

Отдельно есть массив $order, в котором указан порядок сортировки ключей массива $data

$order = [
    1 , 8, 15, 19, 17,
];

Как это можно сделать?


Ответы (2 шт):

Автор решения: Meow
$array = [
    17 => 5,
    8 => 2,
    15 => 3,
    19 => 4,
    1 => 1,
];
$order = [1, 8, 15, 19, 17];

uksort(
    $array,
    function ($a, $b) use ($order): int {
        $keyA = array_search($a, $order);
        $keyB = array_search($b, $order);

        return $keyA <=> $keyB;
    }
);
→ Ссылка
Автор решения: Вадим Александру
$response = array_map(function($i) use ($data) {
    return $data[$i];
}, $order);
→ Ссылка