English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
array_diff_uassoc()La funzione confronta le chiavi e i valori di due (o più) array e restituisce un array che contiene le voci di $array1 che non esistono in qualsiasi altro array con lo stesso valore.
Questa funzione è diversa daarray_diff()poiché array_diff() confronta i valori, mentre questa funzione confronta chiavi e valori di altri array.
Questa funzione è diversa daarray_diff_assocDiverso da () perché array_diff_assoc() utilizza un algoritmo interno per confrontare chiavi e valori, mentre questa funzione utilizza una funzione definita dall'utente.
array_diff_uassoc( $array1, $array2[, $array3..., callback $key_compare_func]);
Numero di ordinamento | Parametri e descrizione |
---|---|
1 | array1(Obbligatorio) Array da confrontare |
2 | array2(Obbligatorio) Questo è l'array da confrontare con il primo array |
3 | array3(Opzionale) Array da confrontare con il primo array |
4 | key_compare_func(Obbligatorio) Quando il primo parametro è minore, uguale o maggiore del secondo parametro, la funzione di confronto deve restituire un intero minore, uguale o maggiore di 0 in modo corrispondente. |
Questa funzione restituisce un array che contiene tutte le voci dell'array1 ma non esistono in altri array.
Questa funzione è stata introdotta per la prima volta nella versione PHP 5.0.0.
Prova il seguente esempio. In questo caso, se la chiave $input1 è uguale a qualsiasi altro array di input, la funzione di confronto delle chiavi restituisce 0; se è maggiore, restituisce 1; se è minore, restituisce -1.
Quando si utilizza la funzione definita per confrontare le chiavi, entrambi gli array contengono effettivamente la chiave "a", quindi non apparirà nell'output. La prossima chiave "b" e "c" non sono presenti nell'array secondario, quindi verranno incluse nell'output. L'altra coppia 0 => "red" è presente nell'output perché nell'indice secondario "red" il valore è 1:
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>Prova a vedere‹/›
Risultato di Output:
Array ( [b] => brown [c] => blue [0] => red )
Prova il seguente esempio. Questa volta "red" non apparirà nell'output perché ora entrambi gli indici sono uguali a 0.
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "c" => "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>Prova a vedere‹/›
Risultato di Output:
Array ( [b] => brown [c] => blue )