3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ "GL001_M", "GL001_XL", "GL001_S", "GL001_L", "GL002_M", "GL002_XS", "GL002_S", "GL002_L" ]; define('SIZES', array_flip(['XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL'])); array_multisort( ...array_merge( array_map( null, ...array_map( fn($v) => (fn($id, $size) => [$id, SIZES[$size]])(...explode('_', $v, 2)), $array ) ), [&$array] ) ); var_export($array);

preferences:
24.32 ms | 410 KiB | 5 Q