PHP özel sipariş dizi

0 Cevap php

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

0 Cevap