2012-04-10 14 views
2

So weiß ich, dass min() kann ich den niedrigsten Wert von einem Array, aber ich brauche die 3 niedrigsten Werte aus einem Array.Erhalten Sie 3 niedrigsten Werte von einem Array, PHP

annehmend mein Array wird $myArray genannt:

I verwendet asort($myArray) auf meine Array, dann print_r($myArray) gibt diese:

Array (
    [137] => 4.90416668118 
    [135] => 7.1203544474 
    [18] => 7.2476262434 
    [81] => 8.37903400152 
    [33] => 9.1074567001 
    [4] => 9.90788482793 
    [138] => 10.2493339987 
    [5] => 11.6024401676 
    [63]...and so on until 
    [124] => 8727.73285117 
    [153] => 8727.73285117 
    [117] => 8727.73285117 
) 

Wie kann ich die drei ersten Werte oder die X ersten Werte erhalten sollte ich brauche zu ...

ICH SOLLTE ANGEGEBEN: Ist es möglich, dies mit dem Verlust der Schlüssel zu tun?

Antwort

16
asort($yourarray, SORT_NUMERIC); 
print_r(array_slice($yourarray, 0, 3, true)); 

http://www.php.net/manual/en/function.asort.php

http://www.php.net/manual/en/function.array-slice.php

+0

Wie dem auch sei, es zu tun, ohne die Schlüssel zu verlieren? Wird dies wahrscheinlich als Antwort markieren array_slice ist sehr nützlich und ich kann wahrscheinlich bekommen, was ich jetzt brauche ... –

+0

Ja, setze einfach den letzten Parameter auf 'true', um die Schlüssel zu erhalten. – Brad

+1

Gold! Vielen Dank. Wird akzeptieren, sobald es mich lässt ... es ist genau dort in der Dokumentation ist es nicht .... –

2

wie Brad Antwort, aber ksort verwenden, um die Schlüssel in der zugehörigen Array zu erhalten:

ksort($arr); 
print_r(array_slice($arr, 0, 3, true)); 
+0

'asort()' behält die Schlüsselzuordnung, nicht wahr? Ich dachte 'ksort()' hat seine Sortierung nach Schlüssel gemacht, was hier nicht benötigt wird. Er möchte nach Wert sortieren. – Brad

Verwandte Themen