1

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

让我举个例子:

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

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

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

换句话说,我必须仅根据以下条件排序并返回第一次出现$limit

任何的想法 ?

4

2 回答 2

9

你可以使用array_slice

asort($words);
$result = array_slice($words, 0, $limit);
于 2012-11-21T11:22:34.133 回答
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);
?>

希望这可以帮助。

于 2012-11-21T11:26:44.410 回答