如何对数组进行排序?

时间:2012-11-21 11:18:56

标签: php arrays sorting asort

我想使用asort()对数组进行排序,并限制要返回的元素数。

让我举一个例子:

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

with = limit = 2我希望得到回报:

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

换句话说,我将不得不排序并仅返回基于$limit的第一次出现

任何想法?

2 个答案:

答案 0 :(得分:8)

您可以使用array_slice

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

答案 1 :(得分:2)

您不能对asort()应用限制,但这是一种解决方法。

<?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);
?>

希望这有帮助。