获取数组中前10项的最佳方法是什么,我有一个包含数百项的数组,我希望使用PHP从数组中获取前10项(大多数重复项),任何建议?
答案 0 :(得分:0)
这应该可以解决问题:
$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);
上面将按照出现次数最多的项目的顺序返回数组。
答案 1 :(得分:0)
尝试使用php的array_count_values()
来获取数组中每个值的出现次数,并与arsort()
一起使用最高频率值对数组进行排序。然后,您可以使用array_slice()
获取数组的前10个最常用值。
$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()
“返回一个数组,使用输入数组的值作为键及其输入频率作为价值观。“