PHP获取数组中重复最多的元素的方法

今天我看到一文章是写要我们如何获取数组中重复元素最多的那个,下面一起来看具体例子,代码如下:

  1. <?php
  2. /**
  3. *
  4. * @author http://www.phpfensi.com
  5. * Created on 2014-4-1
  6. * @param array $array
  7. * @param int [optional] $length
  8. * @return array
  9. */
  10. function mostRepeatedValues($array,$length=0){
  11. if(emptyempty($array) or !is_array($array)){
  12. return false;
  13. }
  14. //1. 计算数组的重复值
  15. $array = array_count_values($array);
  16. //2. 根据重复值 倒排序
  17. arsort($array);
  18. if($length>0){
  19. //3. 返回前 $length 重复值
  20. $array = array_slice($array, 0, $length, true);
  21. }
  22. return $array;
  23. }
  24. $array = array(1, 1, 1, 54, 3,4, 3,4, 3, 14, 3,4, 3,7,8,9,12,45,66,5,7,8,9,2,45);
  25. $counts=mostRepeatedValues($array,5);
  26. print_r($counts);
  27. /*
  28. Array
  29. (
  30. [3] => 5
  31. [4] => 3
  32. [1] => 3
  33. [9] => 2
  34. [45] => 2
  35. )
  36. */
  37. ?>