В php foreach оставить только те значения, которые встречаются только один раз

Как в php foreach оставить только те значения, которые встречаются только один раз? Для примера, если в foreach выводится такой результат:

Array ( [0] => 21 ), то истина.

Если:

Array ( [0] => 21 [1] => 21 [2] => 20 ), то истина.

Если:

Array ( [0] => 21 [1] => 21 [2] => 20 [3] => 20), то ложь.

Если:

Array ( [0] => 21 [1] => 21 [2] => 20 [3] => 20 [4] => 25 ), то истина.

Если:

Array ( [0] => 21 [1] => 21 [2] => 20 [3] => 20 [4] => 25 [5] => 25 ), то ложь.

и т.д.


Ответы (1 шт):

Автор решения: Алексей Шиманский
$countValues = array_count_values($array);    

$result = count(array_filter($countValues, function($item) {
    return $item === 1;
})) > 0;

В $result будет true если был найден хотя бы один элемент, который всетрчается единожды в массиве, в ином случа false

→ Ссылка