- array_count_values: documentation ( source)
- arsort: documentation ( source)
- range: documentation ( source)
<?php
$rangeArr = Array ( "0" => 12 , "1" => 17 , "2" => 5, "3" => 27, "4" => 5 );
$count = 0;
$unique = $rangeArr; arsort($unique);
$unique = array_count_values($unique);
foreach ($unique as $key => $frequency) {
foreach (range(1, $frequency) as $i) {
$unique[$key] += $count++;
}
$unique[$key] /= $frequency;
}
foreach ($rangeArr as $key => $value) {
$data[$key] = $rangeArr[$key] . ': '. $unique[$value];
}
printr($rangeArr);
?>