2010-12-15 5 views
-2

Kann mir bitte jemand eine Idee, das Array in PHP zu manipulieren.PHP-Array-Manipulation

Ich habe ein Array wie dieser Reihenfolge

$test = array(
       "0"=>"62" 
       "1"=>"61" 
       "2"=>"60" 
       "3"=>"53" 
       "4"=>"52" 
       "5"=>"51"); 

Aber ich muss neu anordnen oder sie in dieser Reihenfolge zu sortieren.

$test = array(
       "2"=>"60" 
       "1"=>"61" 
       "0"=>"62" 
       "5"=>"51" 
       "4"=>"52" 
       "3"=>"53"); 

Bitte helfen Sie mir ...

+1

Was ist die "Regel" Ihrer Bestellung? –

+2

Es gibt keine offensichtliche Reihenfolge in Ihrem zweiten Beispiel. Wie wollen Sie, dass wir bei verschiedenen Nummern ankommen? –

+1

Sie möchten also nach Wert sortieren, wo die ersten Zahlen absteigend sind und die anderen Ziffern aufsteigend sind, was ist mit 3-stelligen Zahlen? Was wäre die Wunschordnung für 61,62,63,101,110,121,122,130 .... –

Antwort

3

(funktioniert nur für zweistellige Zahlen, siehe @Olivers Kommentar)

Hier Sie gehen:

function csort($a, $b) { 
    $ta = floor($a/10); 
    $tb = floor($b/10); 
    if($ta !== $tb) { 
     return $tb - $ta; 
    } 
    return $a - $b; 
} 

$test = array(
       "0"=>"62", 
       "1"=>"61", 
       "2"=>"60", 
       "3"=>"53", 
       "4"=>"52", 
       "5"=>"51"); 

usort($test, "csort"); 
print_r($test); 

druckt

Array 
(
    [0] => 60 
    [1] => 61 
    [2] => 62 
    [3] => 51 
    [4] => 52 
    [5] => 53 
) 

Referenz: usort

Oder ausort, wenn Sie den Index behalten möchten.