Funzione array_diff_uassoc() di PHP
Esempio
Confronta i nomi delle chiavi e i valori delle chiavi di due array (utilizzando una funzione personalizzata per confrontare i nomi delle chiavi) e restituisce la differenza:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
Definizione e uso
La funzione array_diff_uassoc() viene utilizzata per confrontare i nomi delle chiavi e i valori delle chiavi di due (o più) array e restituire la differenza.
Nota:Questa funzione utilizza una funzione personalizzata per confrontare i nomi delle chiavi!
Questa funzione confronta i nomi delle chiavi e i valori delle chiavi di due (o più) array e restituisce un array di differenza che include tutte learray1ma non in qualsiasi altro array di parametri (array2 o array3 e simili) i nomi delle chiavi e i valori.
Sintassi
array_diff_uassoc(array1,array2,array3,...myfunction);
Parametri | Descrizione |
---|---|
array1 | Obbligatorio. Primo array da confrontare con altri array. |
array2 | Obbligatorio. Array da confrontare con il primo array. |
array3,... | Opzionale. Altri array da confrontare con il primo array. |
myfunction | Obbligatorio. Definire una stringa che rappresenta la funzione di confronto的可调用函数。 |
Descrizione
La funzione array_diff_uassoc() utilizza una funzione di callback personalizzata per controllare l'indice e calcolare la differenza tra due o più array. Restituisce un array che include tutte le array1 ma non presenti in qualsiasi altro array di parametri.
Notare che, a differenza della funzione array_diff(), anche i nomi delle chiavi devono essere confrontati.
Il parametro myfunction è una funzione personalizzata utente utilizzata per confrontare due array, la quale deve avere due parametri - ossia i nomi delle chiavi da confrontare. Pertanto, il comportamento è esattamente opposto a quello della funzione array_diff_assoc(), che utilizza una funzione interna per il confronto.
I nomi delle chiavi nell'array restituito rimangono invariati.
Dettagli tecnici
Valore di ritorno: | Restituisce un array di differenza che include tutti i valori presenti negli array confrontati (array1ma non in qualsiasi altro array di parametri (array2 o array3 e simili) i nomi delle chiavi e i valori. |
Versione PHP: | 5+ |
Più esempi
Esempio 1
Confronta i nomi delle chiavi e i valori di tre array (utilizzando una funzione utente personalizzata per confrontare i nomi delle chiavi) e restituisce l'intersezione:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"red","b"=>"green","d"=>"blue"); $a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>