获取数组键的中值

时间:2017-12-20 19:14:14

标签: php arrays

如何使用此函数返回数组中键的中位数?

function array_median($array) {
  $iCount = count($array);
  $middle_index = floor($iCount / 2);
  sort($array, SORT_NUMERIC);
  $median = $array[$middle_index];
  if ($iCount % 2 == 0) {
    $median = ($median + $array[$middle_index - 1]) / 2;
  }
  return $median;
}

使用这样的数组: $arr = array('5'=>100,'1'=>30,'2'=>80);

中值应为关键2

1 个答案:

答案 0 :(得分:1)

要获得中位数键,您需要计算键的中位数而不是值。

function array_median($array) {
  // get keys of passed array
  $array = array_keys($array);
  $iCount = count($array);
  $middle_index = floor($iCount / 2);
  sort($array, SORT_NUMERIC);
  $median = $array[$middle_index];
  if ($iCount % 2 == 0) {
    $median = ($median + $array[$middle_index - 1]) / 2;
  }
  return $median;
}

$arr = array('5'=>100,'1'=>30,'2'=>80);
echo array_median($arr);  // output 2