Проверка всех значений массива сразу

Есть ли простой способ проверить, равны ли все значения в массиве друг другу?

В этом случае он вернет false:

$array[0] = 'yes'; $array[1] = 'yes'; $array[2] = 'no'; 

И в этом случае, правда:

 $array[0] = 'yes'; $array[1] = 'yes'; $array[2] = 'yes'; 

Итак, да, есть функция / метод для проверки всех значений массива сразу?

Заранее спасибо!

Не одна функция, но то же самое можно было бы добиться легко (?) С помощью:

 count(array_keys($array, 'yes')) == count($array) 

другой возможный вариант

 if(count(array_unique($array)) == 1) 
 if($a === array_fill(0, count($a), end($a))) echo "all items equal!"; 

или лучше

 if(count(array_count_values($a)) == 1)... 

«Все значения одинаковы» эквивалентно «всем значениям, равным первому элементу», поэтому я бы сделал что-то вроде этого:

 function array_same($array) { if (count($array)==0) return true; $firstvalue=$array[0]; for($i=1; $i<count($array); $i++) { if ($array[$i]!=$firstvalue) return false; } return true; } 

Вот еще один способ сделать это, используя array_diff со списками

В моем случае мне пришлось протестировать против массивов, у которых были все пустые строки:

 $empty_array = array('','',''); // i know ahead of time that array has three elements $array_2d = array(); for($array_2d as $arr) if(array_diff($arr,$empty_arr)) // do_stuff_with_non_empty_array() 
 if(count(array_unique($array)) === count($array)) { // all items in $array are the same }else{ // at least one item is different }