我想使用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
的第一次出现
任何想法?
答案 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);
?>
希望这有帮助。