Funzione array_intersect_uassoc() di PHP

Esempio

Confronta i nomi e i valori delle chiavi di due array (utilizzando una funzione 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("d"=>"red","b"=>"green","e"=>"blue");
$result=array_intersect_uassoc($a1,$a2,"myfunction");
print_r($result);
?>

Esempio di esecuzione

Definizione e uso

La funzione array_intersect_uassoc() viene utilizzata per confrontare i nomi e i valori delle chiavi di due (o più) array e restituire l'intersezione.

Nota:Questa funzione utilizza una funzione personalizzata per confrontare i nomi delle chiavi!

Questa funzione confronta i nomi e i valori delle chiavi di due (o più) array e restituisce un array di intersezione che include tutti gli elementi presenti negli array confrontati (array1inoltre in qualsiasi altro array di parametri (array2 o array3 e altri) i nomi delle chiavi e i valori.

Descrizione

La funzione array_intersect_uassoc() utilizza una funzione di callback personalizzata fornita dall'utente per calcolare l'intersezione degli array, confrontando gli indici tramite la callback.

array_intersect_uassoc() restituisce un array che contiene tutti gli elementi array1 che compaiono anche in tutti gli altri array di parametri. Gli elementi dell'array restituito mantengono lo stesso nome di chiave.

Attenzione, a differenza di array_intersect(), oltre a confrontare i valori delle chiavi, si confrontano anche i nomi delle chiavi.

Questa comparazione avviene tramite una funzione di callback fornita dall'utente. La funzione accetta due parametri, ossia i nomi delle chiavi da confrontare. Se il primo parametro è minore del secondo, la funzione deve restituire un numero negativo, se i due parametri sono uguali, deve restituire 0, e se il primo parametro è maggiore del secondo, deve restituire un numero positivo.

sintassi

array_intersect_uassoc(array1,array2,array3,...myfunction)
Parametro Descrizione
array1 Obbligatorio. Primo array da confrontare con gli altri array.
array2 Obbligatorio. Array da confrontare con il primo array.
array3,... Facoltativo. Altri array da confrontare con il primo array.
myfunction Obbligatorio. Stringa che definisce la funzione di confronto chiamabile. Se il primo parametro è minore, uguale o maggiore del secondo parametro, la funzione di confronto deve restituire un intero positivo, uguale o negativo.

Dettagli tecnici

Valore di ritorno: Restituisce l'array di intersezione che include tutte le chiavi delle array (array1inoltre in qualsiasi altro array di parametri (array2 o array3 e altri) i nomi delle chiavi e i valori.
Versione PHP: 5+

Più esempi

Esempio 1

Confronta i nomi delle chiavi e i valori delle tre array (usando la funzione personalizzata utente 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_intersect_uassoc($a1,$a2,$a3,"myfunction");
print_r($result);
?>

Esempio di esecuzione