Nachfolgend eine Funktion zum Sortieren von Kleidergrößen.
$attributes = array(
array('sku'=>'WKK1234_M','value'=>'M'),
array('sku'=>'WKK1234_4XL','value'=>'4XL'),
array('sku'=>'WKK1234_L','value'=>'L'),
array('sku'=>'WKK1234_S','value'=>'S'),
);
//sort the option values
$attributes = $this->sortOptionValues($attributes,'value');
/**
* Sort the option values alphabetic, with the given key
*
*
* @param array $multiArray
* @param string $key
* @return array
*
*/
public function sortOptionValues($multiArray,$key) {
$tmp = Array();
foreach($multiArray as &$ma) {
$tmp[] = $this->cmp($ma[$key]);
}
array_multisort($tmp, $multiArray);
return $multiArray;
}
/**
* return the order of dress sizes
* @param $a
* @return mixed
*/
public function cmp($a)
{
//ignore numeric values
if(is_numeric($a)) {
return $a;
}
//default dress size order
$sizes = array(
"uni" => 1,
"2XS" => 2,
"XS" => 3,
"S" => 4,
"M" => 5,
"L" => 6,
"XL" => 7,
"2XL" => 8,
"XXL" => 8,
"3XL" => 9,
"4XL" => 10,
"5XL" => 11
);
return $sizes[$a];
}