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
)