Funzione PHP array_diff_uassoc ()
Definizione e utilizzo
Il array_diff_uassoc() La funzione confronta le chiavi ei valori di due (o più) array e restituisce un array che contiene le voci di array1 che non sono presenti in nessuno degli altri array con lo stesso valore.
Questa funzione è diversa da array_diff() perché array_diff () confronta i valori mentre questa funzione confronta le chiavi e i loro valori in altri array.
Questa funzione è diversa da array_diff_assoc() perché array_diff_assoc () utilizza un algoritmo interno per confrontare le chiavi ei loro valori, mentre questa funzione utilizza la funzione definita dall'utente per confrontare le chiavi ei loro valori.
Sintassi
array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );
Parametri
Suor n | Parametro e descrizione |
---|---|
1 | array1(Required) Matrice da cui confrontare |
2 | array2(Required) Questo è un array da confrontare con il primo array |
3 | array3(Optional) Un array da confrontare con il primo array |
4 | key_compare_func(Required) È una funzione di callback da utilizzare per confrontare le chiavi. Questa funzione di callback deve restituire un numero intero <, =,> di 0 se il primo argomento è considerato rispettivamente <, =,> rispetto al secondo argomento. |
Valori restituiti
Questa funzione restituisce un array contenente tutte le voci di array1 ma che non sono presenti in nessuno degli altri array.
Versione PHP
Questa funzione è stata introdotta per la prima volta nella versione PHP 5.0.0.
Esempio
Prova il seguente esempio. Qui la funzione di confronto delle chiavi restituisce 0 se $ input1 le chiavi sono uguali a qualsiasi altro array di input, altrimenti restituisce 1 se maggiore o -1 se minore.
Durante il confronto delle chiavi utilizzando la funzione definita, abbiamo le chiavi "a" in entrambi gli array, quindi non verranno visualizzate nell'output. I tasti successivi "b" e "c" non sono nel secondo array, quindi andranno in output. Ulteriore coppia 0 => "rosso" è nell'output perché nel secondo argomento "rosso" ha la chiave che è 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);
?>
Questo produrrà il seguente risultato:
Array
(
[b] => brown
[c] => blue
[0] => red
)
Esempio
Prova il seguente esempio. Questa volta "rosso" non sarà nell'output perché ora entrambe le chiavi sono uguali che è 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);
?>
Questo produrrà il seguente risultato:
Array
(
[b] => brown
[c] => blue
)