How to find K most frequent elements in an unsorted array with PHP

1 Answer

0 votes
function printKMostFrequentElements($arr, $K) {
    $frequency = array();
    $max = -1;
    
    foreach ($arr as $num) {
        if ($num > $max) {
            $max = $num;
        }
        if (isset($frequency[$num])) {
            $frequency[$num]++; 
        } else {
            $frequency[$num] = 1;
        }
    }

    arsort($frequency);

    $keys = array_keys($frequency);
    
    for($i = 0; $i < $K; $i++) {
        echo $keys[$i] . ' ';
    }
}

$arr = array(4, 5, 19, 50, 7, 19, 8, 19, 3, 3, 6, 3, 27, 19, 3, 3);
$K = 2;

printKMostFrequentElements($arr, $K);






/*
run:

3 19 

*/

 



answered May 1, 2023 by avibootz
...