2010-03-31 13 views
7

W PHP, jak mogę szybko stwierdzić, czy wszystkie wartości w tablicy są identyczne?Jak sprawdzić, czy wszystkie wartości w tablicy są identyczne?

+1

Ponadto, wiele z nich to googleable (jak obecny jeden) więc nie ma rzeczywistej potrzeby, aby opublikować go jako pytanie na StackOverflow – SeanJA

+1

nie zgadzam. im więcej danych, tym lepiej, nawet jeśli pytanie już istnieje. może nie być "nadający się do użytku w sieci" przy użyciu wyszukiwanego hasła, które wybiera użytkownik na podstawie sposobu sformułowania pytania przez użytkownika. stackoverflow + google pozwala programistom nauczyć się nowych technik i wykonywać pracę szybciej i bardziej efektywnie. –

Odpowiedz

34

Można użyć testu:

count(array_unique($arr)) == 1; 

Alternatywnie można użyć testu:

$arr === array_fill(0,count($arr),$arr[0]); 
+0

'array_unique' nie modyfikuje oryginalnej tablicy. Proszę zajrzeć do podręcznika PHP: http://php.net/manual/en/function.array-unique.php –

+0

@John: Dzięki za użyteczny komentarz. Edytowałem moje ans. – codaddict

-1

Czy próbny i sprawdzić, czy wszystkie wyniki są takie same:

foreach ($array as $newarray){ 
    echo $newarray. ''; 
} 
10
$results = array_unique($myArray); 
if(count($results) == 1){ 
    // $myArray is all duplicates 
} 
+0

Chociaż jest to poprawna odpowiedź, chciałbym również zauważyć, że 'array_unique' * usuwa * duplikaty, więc to podejście działa, jeśli nie potrzebuje tablicy z wszystkimi jej wartościami. –

+4

Nie modyfikuje oryginalnej tablicy ('$ myArray' w tym przypadku), zamiast tego zwraca tablicę z usuniętymi duplikatami. – inkedmn

+0

Można również utworzyć nową zmienną z tablicą i pozostawić samą oryginalną tablicę. – Cryophallion

2

Możesz również użyć tej kontroli:

count(array_count_values($arr)) == 1 
0

Dlaczego nie po prostu zapętlić tę tablicę?

-1

Można sprawdzić count(array_intersect($arr1, $arr2)) == 0

0
$myArray = array('1','1','1'); 
$results = array_unique($myArray); 
if(count($results) == 1) 
{ 
    echo"all value is duplicates"; 
} 
else 
{ 
    echo"all value is not duplicates"; 
} 
Powiązane problemy