$source = [...];
$pattern = [321, 8734, 210, 2131];
usort($source, function ($a, $b) use ($pattern) {
$x = array_search($a['id'], $pattern); // Вам нужно искать свое значение, разумеется
$y = array_search($b['id'], $pattern);
if ($x == $y) return 0;
return ($x < $y) ? -1 : 1; // если индекс первого элемента больше, он "меньше"
});