<?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']));
$ids = [];
$sizes = [];
foreach ($array as $v) {
[$ids[], $size] = explode('_', $v, 2);
$sizes[] = SIZES[$size];
}
array_multisort($ids, $sizes, $array);
var_export($array);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array (
0 => 'GL001_S',
1 => 'GL001_M',
2 => 'GL001_L',
3 => 'GL001_XL',
4 => 'GL002_XS',
5 => 'GL002_S',
6 => 'GL002_M',
7 => 'GL002_L',
)
preferences:
75.43 ms | 407 KiB | 5 Q