Сортировать ключи массива основываясь на значениях другого массива
Есть массив с данными $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);