Многомерный массив PHP сортирует по другому массиву

У меня есть массив с идентификаторами, который выглядит как

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']]; });