0

获取数组中前 10 个项目的最佳方法是什么,我有一个包含数百个项目的数组,我想使用 PHP 从数组中获取前 10 个项目(最重复的项目),有什么建议吗?

4

2 回答 2

1

这应该可以解决问题:

$inputArray = array('orange','banana', 'banana', 'banana', 'pear', 'orange', 'apples','orange', 'grape', 'apple');

$countedArray = array_count_values($inputArray);
arsort($countedArray);

$topTen = array_slice($countedArray, 0, 10);

以上将按出现次数最多的项目的顺序返回数组。

于 2013-03-24T03:11:52.763 回答
0

尝试使用 phparray_count_values()获取数组中每个值的出现次数,并结合arsort()按最高频率值对数组进行排序。然后,您可以使用array_slice().

$dataArr = array('test', 4, 15.2, ...); // Input array with all data
$frequencies = array_count_values($dataArr);
arsort($frequencies); // Sort by the most frequent matches first.
$tenFrequencies = array_slice($frequencies, 0, 10, TRUE); // Only get the top 10 most frequent
$topTenValues = array_keys($tenFrequencies);

注意:我们需要使用array_keys()来获取最终值,因为array_count_values()“返回一个数组,使用输入数组的值作为键,并将它们在输入中的频率作为值。”

于 2013-03-24T03:18:51.550 回答