如何在数组中查找重复值和最高值

时间:2010-06-05 13:31:01

标签: php arrays duplicates

我有一个像这样的数组

array={'a'=>'2','b'=>'5', 'c'=>'6', 'd'=>'6', 'e'=>'2'};

根据$ _POST变量,数组值可能会有所不同。我的问题是如何在我的数组中找到最高值并返回索引键。在我的情况下,我需要得到'c'和'd'以及值6.不确定如何做到这一点。任何帮助将不胜感激。感谢。

4 个答案:

答案 0 :(得分:4)

$max  = max(array_values($array));
$keys = array_keys($array, $max);

答案 1 :(得分:1)

查看arsort,它将按相反的顺序对数组进行排序并保持索引关联。所以:

arsort($array);

这将最终得到数组顶部的最大值。根据您的需要array_unique可以从数组中删除重复值。

答案 2 :(得分:1)

$array = array(
  'key1' => 22,
  'key2' => 17,
  'key3' => 19,
  'key4' => 21,
  'key5' => 24,
  'key6' => 8,
);

function getHighest($array)
{
   $highest = 0;
   foreach($array as $index => $value)
   {
      if(is_numeric($value) && $value > $highest)
      {
          $highest = $index;
      }
   }
   return $highest;
}

echo getHighest($array); //key5

答案 3 :(得分:0)

或者这应该是神奇的,它可能比php内置函数更快

$maxValue = -1;
$max = array();
foreach ($items as $key => $item) {
    if ($item == $maxValue) {
        $max[] = $key;
    } elseif ($item > $maxValue) {
        $max = array();
        $max[] = $key;
        $maxValue = $item;
    }
}