Reputation: 7891
How can this function be used to return the median of the keys in an array?
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;
}
With an array like this:
$arr = array('5'=>100,'1'=>30,'2'=>80);
The median value should be key 2
.
Upvotes: 0
Views: 724
Reputation: 3879
To get median key, You need to calculate median for keys instead of values.
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
Upvotes: 1