2013-03-20 2 views
-1

У меня есть две возможные конфигурации массива в PHP, как следующее:Как я могу найти уникальность в массиве (PHP)

$array = array(
    "0" => "137", 
    "1" => "137", 
    "2" => "137", 
    "3" => "137", 
    "4" => "137" 
); 

и

$array = array(
    "0" => "137", 
    "1" => "200", 
    "2" => "31", 
    "3" => "19", 
    "4" => "400" 
); 

Я не пытаюсь сравнить массивы друг к другу.

Не имеет значения, что конкретные цифры «137» или любое другое число, что мне нужно знать, это то, как программно определить, что первый массив является «истинным», потому что все его значения одинаковы , Второй массив «false», потому что они разные. Во-вторых, в нем может быть любой случайный набор, включая кучу того же числа и один другой.

Меня не волнует, какой номер отличается, только если они все одинаковые. Я сейчас изучаю, но я не уверен, что искать, с точки зрения термина.

+4

Вы посмотрели на ['array_diff()'] (http://www.php.net/manual/en/function.array-diff.php)? –

+0

Количество (array_unique ($ массив) == 1) http://stackoverflow.com/questions/2554410/how-to-check-if-all-values-in-array-are-identical – CarComp

+1

С PHP моя первая остановка - это всегда [Матричные функции] (http://www.php.net/manual/en/ref.array.php). По моему опыту, обычно существует существующая функция, которая делает именно то, что я хочу :-) – andyb

ответ

8
if (count(array_unique($array)) > 1) { 
    // not all elements are the same 
} 
+0

+1 слишком быстро понять. –

+0

+1 простой и приятный ответ. –

+2

Спасибо. Я действительно пришел к тому же ответу почти сразу после того, как задал вопрос. Я искал diff, но это был действительно «уникальный» вопрос. – CarComp

1

Вы можете использовать функцию array_unique php array_unique

, если количество полученного массива равен 1, то все значения одинаковы.

Или это может быть лучше просто цикл по массиву, пока вы не найдете значение, которое отличается, это имеет худший случай O (N)

EDIT: Обратите внимание, что количество (array_unique ($ массив)) более чистая, но менее эффективная, но все же o (n) хотя (все время o (n) не просто хуже).

Смежные вопросы