Bir dizi, herhangi bir sırayla, aşağıdaki değerlerden bazıları veya tümü ile birlikte gelir. Artan boyutu için bunları sipariş en iyi yolu nedir? Böylece küçük ile başlayan ve XXL ile biten. Ben elemanları benim kullanıcı tanımlı işlev sipariş nasıl olması gerektiği gibi biraz kaybetti usort ama ben olabilir
Small
XXL
Medium
Large
XL
EDIT: bazı bilgi böylece oluşturulan yeni bir soru http://stackoverflow.com/questions/4014743/custom-ordering-array-with-key-value-pairs bıraktı
EDIT2: Tam kodu
print_r($sizes);
$sorted_sizes = $this->sort_sizes(array_unique($sizes));
print_r($sorted_sizes);
function sort_sizes($sizes)
{
return uasort($sizes, array($this, 'cmp'));
}
function cmp($a,$b)
{
$sizeArray = array( 'Small' => 0, 'Medium' => 1, 'Large' => 2, 'XL' => 3, 'XXL' => 4);
return $sizeArray[$a] - $sizeArray[$b];
}
Bu çıkışlar:
Array
(
[66-507cddcd16d9786abafccfa78b19acf8] => XL
[64-507cddcd16d9786abafccfa78b19acf8] => medium
[65-507cddcd16d9786abafccfa78b19acf8] => large
[63-507cddcd16d9786abafccfa78b19acf8] => small
)
ve print_r ($ sorted_sizes) sadece çıkışı "1" veriyor