3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = ['_', '@', ...range(-10, 10), ...range('A', 'F'), ...range('a', 'f') ]; usort( $data, fn($a, $b) => ($b < 0 <=> $a < 0) // prioritize negatives ?: (ctype_upper((string) $b) <=> ctype_upper((string) $a)) // prioritize uppercase letters ?: (is_int($a) <=> is_int($b)) // deprioritize integers ?: ($a <=> $b) // sort normally ); var_export($data);

preferences:
23.25 ms | 407 KiB | 5 Q