У меня есть массив с идентификаторами, который выглядит как
array( 0 => 12 1 => 30 2 => 50 3 => 11 4 => 22 5 => 45 [...] )
и другой многомерный массив, который выглядит как
array( 0 => array( 'id' => 12, 'title' => 'title 12', ), 1 => array( 'id' => 50, 'title' => 'title 50', ), 2 => array( 'id' => 11, 'title' => 'title 11', ), 3 => array( 'id' => 30, 'title' => 'title 30', ), 4 => array( 'id' => 45, 'title' => 'title 45', ), 5 => array( 'id' => 22, 'title' => 'title 22', ), )
Иды второго массива соответствуют значениям в первом массиве. Мне нужно выполнить сортировку второго массива по идентификаторам под-массивов в том порядке, в котором они находятся в 1-м массиве.
Каков наилучший способ сделать это?
Предполагая, что массив с идентификаторами называется $order
а массив со значениями называется $items
:
$keys = array_flip($order); usort($items, function($a, $b) use($keys) { return $keys[$a['id']] - $keys[$b['id']]; });