How to use to make sorted list elements unique with minimum increments in PHP

1 Answer

0 votes
function make_unique(&$arr) {
    $previous = $arr[0];
         
    for ($i = 1; $i < count($arr); $i++) {
        if ($arr[$i] <= $previous) {
            $arr[$i] = $previous;
            $arr[$i]++;
        }
        $previous = $arr[$i];
    }
}
    
$arr = array(1, 1, 2, 2, 3, 3, 7, 8, 8, 8, 12, 15, 33, 33, 33);

make_unique($arr);
 
foreach($arr as $n) {    
    echo $n . ", ";
}




/*
run:
 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 33, 34, 35, 
 
*/

 



answered Dec 11, 2021 by avibootz
...