Php阵列分类服装尺寸(XXS XS SML XL XXL)和动态阵列上的数字

dr.*_*nux 6 php arrays sorting

我有一个像这样的数组:

Array ( [0] => XL [1] => M [2] => L [3] => XL [4] => S [5] => XXL)
Run Code Online (Sandbox Code Playgroud)

但我想对我的数组进行排序:

 S - M - L - XL - XXL
Run Code Online (Sandbox Code Playgroud)

我知道我可以用usort()来做,但是,我得到了一些其他值,如数字:

Array ( [0] => 14 [1] => 37 [2] => 38 [3] => 39 [4] => 40 [5] => 44 [6] => 36 [7] => 28 )
Run Code Online (Sandbox Code Playgroud)

我的意思是这是一个动态阵列......

我正在使用那个asort(); 用于排序该值.

有没有任何功能/方法可以做到这一点?

Ada*_*oss 11

function cmp($a, $b)
{

$sizes = array(
"XXS" => 0,
"XS" => 1,
"S" => 2,
"M" => 3,
"L" => 4,
"XL" => 5,
"XXL" => 6
);

$asize = $sizes[$a];
$bsize = $sizes[$b];

if ($asize == $bsize) {
    return 0;
}

return ($asize > $bsize) ? 1 : -1;
}

usort($your_array, "cmp");
Run Code Online (Sandbox Code Playgroud)