16 08 22

/**
* 描述 : 指定尺码排序
* 作者 : Smart.Chen
*/
public static function sizeSort(&$array)
{
$sortConfig = [
'XS',
'S',
'M',
'L',
'XL',
'2XL',
'3XL',
'4XL',
'14W',
'16W',
'18W',
'20W',
'22W',
'24W',
'26W',
'XS',
'S',
'M',
'L',
'XL',
'1X',
'2X',
'3X',
'4X',
];
$newConfig = [];
//所有尺码 key => value
$specArr = array_flip(getSpec());
//获取尺码对应编号
foreach ($sortConfig as $v) {
$newConfig[] = $specArr[$v] ?? $v;
}
usort($array, function ($a, $b) use ($newConfig) {
$pos_a = array_search($a['spec'], $newConfig);
$pos_b = array_search($b['spec'], $newConfig);
return $pos_a - $pos_b;
});
$newArr = [];
//因为要按颜色区别
foreach ($array as $v) {
$newArr[$v['color']][$v['sku']] = $v;
}
$endArr = [];
//重新赋值
foreach ($newArr as $n) {
foreach ($n as $sku => $s) {
$endArr[$sku] = $s;
}
}
//最后结果
$array = $endArr;
}


延伸阅读
  1. of框架上传图片用法
  2. 替换返回的菜单链接
  3. git 批量删除本地分支