Funkcja array_diff_uassoc() w PHP

Przykład

Porównaj nazwy kluczy i wartości w dwóch tablicach (używając użytkownika-definedej funkcji do porównania nazw kluczy) i zwróć różnicę:

<?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);
?>

Uruchomienie przykładu

Definicja i użycie

Funkcja array_diff_uassoc() służy do porównania nazw kluczy i wartości w dwóch (lub więcej) tablicach i zwraca różnicę.

Komentarz:Funkcja ta używa użytkownika-definedej funkcji do porównania nazw kluczy!

Funkcja ta porównuje nazwy kluczy i wartości w dwóch (lub więcej) tablicach i zwraca tablicę różnic, która zawiera wszystkie elementy obecne warray1) ale nie w żadnym innym parametrycznym tablicy (array2 lub array3 itp.) kluczami i wartościami.

Gramatyka

array_diff_uassoc(array1,array2,array3...myfunction);
Parametry Opis
array1 Wymagane. Pierwsza tablica do porównania z innymi tablicami.
array2 Wymagane. Tablica do porównania z pierwszą tablicą.
array3,... Opcjonalne. Inne tablice do porównania z pierwszą tablicą.
myfunction Wymagane. Definiowanie łańcucha znakowego funkcji, która może być wywoływana. Jeśli pierwszy parametr jest mniejszy, równy lub większy niż drugi parametr, funkcja musi zwracać całkowitą liczbę mniejszą, równą lub większą niż 0.

Opis

Funkcja array_diff_uassoc() używa użytkownika-definedego funkcji zwrotnego (callback) do sprawdzania indeksów w celu obliczenia różnicy między dwoma lub większą liczbą tablic. Zwraca tablicę, która zawiera wszystkie elementy, które są obecne w array1 ale nie w żadnej innej parametrycznej tablicy.}

Uwaga, w przeciwieństwie do funkcji array_diff(), porównywane są również nazwy kluczy.

Parametr myfunction jest funkcją użytkownika, która jest używana do porównywania dwóch tablic i musi mieć dwa parametry - nazwy kluczy do porównania. Dlatego zachowanie tej funkcji jest odwrotne do funkcji array_diff_assoc(), która używa wewnętrznej funkcji do porównywania.

W zwracanej tablicy nazwy kluczy pozostają takie same.

Szczegóły techniczne

Wartość zwrócona: Zwróć tablicę różnicy, która zawiera wszystkie wartości z porównywanych tablic (array1) ale nie w żadnym innym parametrycznym tablicy (array2 lub array3 itp.) kluczami i wartościami.
Wersja PHP: 5+

Więcej przykładów

Przykład 1

Porównaj nazwy kluczy i wartości trzech tablic (używając funkcji użytkownika do porównania nazw kluczy) i zwróć różnicę:

<?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);
?>

Uruchomienie przykładu