2012-11-21 5 views
1

asort()을 사용하여 배열을 정렬하고 반환 할 요소의 수를 제한하려고합니다. I 정렬 만 반환해야합니다, 즉한계가있는 배열을 정렬하는 방법은 무엇입니까?

$words = array (
    ["dolor"]=> 
    int(4)  
    ["lorem"]=> 
    int(2)); 

:

$words = array (
["lorem"]=> 
int(2) 
["sssss"]=> 
int(2) 
["dolor"]=> 
int(4) 
["ipsum"]=> 
int(2) 
["title"]=> 
int(1)); 

= 내가 보답해야 할 것이다 = 2 제한 :

날이 exeample을 드리겠습니다 첫 번째 발생은 $limit

을 기반으로합니다.

답변

8

당신은 당신은 (따라 asort에 제한을 적용 할 수 없습니다 array_slice

asort($words); 
$result = array_slice($words, 0, $limit); 
2

사용할 수 있습니다)하지만이 해결 방법이다.

<?php 
    $words = array("Cat", "Dog", "Donkey"); 
    $sorted = asort($words); 
    $limit = 2; 
    $final = array(); 
    for ($i = 0; $i <= ($limit - 1); $i++) { 
     $final[] = $words[$i]; 
    } 
    var_dump($final); 
?> 

희망이 있습니다.

+0

두 번째 것은 의미가 없습니다. 그는 정렬 된 순서로 처음 두 가지가 아닌 두 개의 가장 높은 정렬 된 순서 요소를 원합니다. – Gaminic

+0

예, 불필요한 솔루션을 제거해 주셔서 감사합니다. array_slice는 어느 쪽이든 더 나은 해결책입니다. 건배. –

+0

귀하의 솔루션은 완전하고 이해하기 쉽습니다. – Gaminic

관련 문제