3v4l.org

run code in 300+ PHP versions simultaneously
<?php //$array = ["05h", "02h", "03c", "02s", "04h"]; //$array = ["05h", "02h", "03c", "02s", "03h"]; $array = ["03s", "02h", "03c", "02s", "03h"]; foreach ($array as $v) { $num = (int) $v; $counts[$num] = ($counts[$num] ?? 0) + 1; $map[$v] =& $counts[$num]; } var_dump($map); usort($array, fn($a, $b) => $map[$b] <=> $map[$a]); var_export($array);

preferences:
48.26 ms | 406 KiB | 5 Q