2012-04-10 4 views
2

그래서 min()은 배열에서 가장 낮은 값을 얻을 수 있습니다. 그러나 배열에서 3 개의 가장 낮은 값이 필요합니다.배열에서 3 번째로 낮은 값을 얻습니다. PHP

은 내 배열은 $myArray이라는 가정하면

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 
) 

어떻게 3 개 첫 번째 값 또는 X 첫 번째 값은 내가 필요로한다 얻을 수 있습니다 :

내가 print_r($myArray) 출력이 다음 내 배열에 asort($myArray)을 사용 ~ ...

나는을 지정해야합니다 : 키를 잃어 버릴 수 있습니까?

브래드의 대답처럼

답변

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

을 어쨌든 열쇠를 잃지 않고 그것을 할? 아마 array_slice가 매우 유용한 것으로 태그를 붙일 것인가? 아마도 지금 내가 필요로하는 것을 얻을 수있을 것이다 ... –

+0

네, 키를 보존하기 위해 마지막 매개 변수를'true'로 설정하면됩니다. – Brad

+1

골드! 감사. 받아들이 자마자 곧바로 받아 들일 것입니다. 문서에 바로 있습니다 .... –

2

하지만 연관 배열의 키를 보존하기 위해 ksort를 사용

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

'asort()'는 키 연관을 유지합니까, 그렇지 않습니까? 나는'ksort()'가 키에 의한 정렬을했다고 생각했는데, 이것은 필요한 것이 아닙니다. 그는 가치에 따라 분류하고 싶어한다. – Brad

관련 문제