如果大小都被定義,那麼你可以有一個包含所有有效尺寸一$baseArr
和排序基於該
function sortSizeArr($arr) {
$baseArr = array('S', 'M', 'L', 'XL', 'XXL', '3XL', '36', '37', '38', '39', '40', '41');
$sortedArr = array();
for($i = 0; $i < count($baseArr); $i++) {
if(in_array($baseArr[$i], $arr))
array_push($sortedArr, $baseArr[$i]);
}
return $sortedArr;
}
測試當前ARR:
$sizes = array('M', '38', 'S', '36', '41', '40', 'XXL');
print_r(sortSizeArr($sizes));
陣列([0 ] => S [1] => M [2] => XXL [3] => 36 [4] => 38 [5] => 40 [6] => 41)
由Legionar編輯: 我打電話給這個函數,只有在沒有數字大小的字母大小的情況下。有些尺寸是f.e. M/5, L/6, XL/7, XXL/8
,所以我改變了一點你的功能。這幫助我,謝謝:
function sortSizeArr($arr) {
$baseArr = array('XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL', '3XL');
$sortedArr = array();
for ($i = 0; $i < count($baseArr); $i++) {
/*if (in_array($baseArr[$i], $arr)) {
array_push($sortedArr, $baseArr[$i]);
}*/
foreach ($arr as $val) {
$check = reset(explode('/', $val));
if (strpos($val, $baseArr[$i]) === 0) {
array_push($sortedArr, $val);
}
}
}
return $sortedArr;
}
我認爲你將不得不編寫自己的功能。 – Rizier123
或者你需要區分你自己的alpha值將是關鍵和數值將是他們各自的鍵的值爲'array([s] => 36)' –
@Uchiha:是的,這可以工作,我會嘗試。謝謝。 – Legionar