2010-03-31 23 views
7

In PHP, come posso dire rapidamente se tutti i valori nella matrice sono identici?Come verificare se tutti i valori nella matrice sono identici?

+1

Inoltre, un sacco di questi sono Googleable (come quella attuale) quindi non c'è alcuna reale necessità di pubblicarlo come una domanda su StackOverflow – SeanJA

+1

sono d'accordo. più dati sono i migliori, anche se la domanda esiste già. potrebbe non essere "googleable" utilizzando il termine di ricerca che un utente seleziona in base al modo in cui l'utente ha formulato la domanda. stackoverflow + google consente ai programmatori di apprendere nuove tecniche e di svolgere il lavoro in modo più rapido ed efficiente. –

risposta

34

È possibile utilizzare il test:

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

In alternativa è possibile utilizzare il test:

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

'array_unique' non modifica effettivamente la matrice originale. Si prega di dare un'occhiata al manuale di PHP: http://php.net/manual/en/function.array-unique.php –

+0

@ John: Grazie per il commento utile. Ho modificato i miei ans. – codaddict

-1

Fate una prova e vedere se tutti i risultati sono gli stessi:

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

Anche se questa è una risposta valida, mi sarebbe anche notare che 'array_unique' * * rimuove i duplicati, quindi questo approccio funziona se non ne ha bisogno l'array con tutti i suoi valori. –

+4

Non modifica l'array originale ('$ myArray', in questo caso), bensì restituisce un array con i duplicati rimossi. – inkedmn

+0

Oppure, è possibile creare una nuova variabile con l'array al suo interno e lasciare l'array originale da solo. – Cryophallion

2

Si potrebbe anche usare questo controllo:

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

Perché non eseguire il loop su questo array?

-1

È possibile verificare la 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"; 
} 
Problemi correlati