How to print the distinct elements of an array in PHP

2 Answers

0 votes
function getUniqueElements($arr) {
    $counts = array();

    foreach ($arr as $val) {
        if (isset($counts[$val])) {
            $counts[$val]++;
        } else {
            $counts[$val] = 1;
        }
    }

    $unique = array();
    foreach ($counts as $key => $value) {
        if ($value == 1) {
            $unique[] = $key;
        }
    }

    return $unique;
}

function printUniqueElements($arr) {
    $unique = getUniqueElements($arr);
    foreach ($unique as $val) {
        echo $val . "\n";
    }
}

$arr = array(3, 5, 9, 1, 7, 8, 1, 9, 0, 3, 9);

printUniqueElements($arr);



/*
run:

5
7
8
0

*/

 



answered May 4, 2020 by avibootz
edited Jul 13, 2025 by avibootz
0 votes
$array = [3, 5, 9, 1, 7, 8, 1, 9, 0, 3, 9];

$uniqueElements = array_filter($array, function($item) use ($array) {
    return count(array_keys($array, $item)) === 1;
});

print_r(array_values($uniqueElements));



/*
run:

Array
(
    [0] => 5
    [1] => 7
    [2] => 8
    [3] => 0
)

*/

 



answered Jul 13, 2025 by avibootz
...