<?php
$unsorted = [
"3470U11",
"3470E11",
"3470S13",
"3470G11",
"3470S12",
"3470S11",
"3470E12",
"3470U12",
"3470G13",
"3470G12",
"3470E13",
"3470U13"
];
$sortBy = ['G', 'D', 'S', 'U', 'E', 'T', 'A', 'L'];
$priority = array_flip($sortBy);
usort(
$unsorted,
fn($a, $b) =>
($priority[substr($a, -3, 1)] <=> $priority[substr($b, -3, 1)])
?: $a <=> $b
);
var_export ($unsorted);
preferences:
51.13 ms | 402 KiB | 5 Q