PHP array_udiff_uassoc() functie

Voorbeeld

Vergelijk de sleutelnamen en waarden van twee arrays (gebruik gebruikersdefinieerde functies voor vergelijking) en retourneer een differentset:

<?php
function myfunction_key($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
function myfunction_value($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","c"=>"green");
$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);
?>

Voorbeeld van uitvoering

Definitie en gebruik

De functie array_udiff_uassoc() wordt gebruikt om de sleutelnamen en waarden van twee (of meer) arrays te vergelijken en een differentset te retourneren.

Opmerking:Deze functie gebruikt twee gebruikersdefinieerde functies voor vergelijking; de eerste functie vergelijkt de sleutelnamen, de tweede functie vergelijkt de waarden!

Deze functie vergelijkt de sleutelnamen en waarden van twee (of meer) arrays en retourneert een differentset-array, die alle elementen bevat die in de te vergelijken arrays voorkomen.array1), maar niet in enige andere parameterarrays (array2 of array3 enz.) van de sleutelnamen en -waarden.

beschrijving

de functie array_udiff_uassoc() retourneert array1 een deel van de array dat in de ene array bestaat, maar niet in de andere. De sleutelnamen in de geretourneerde array blijven ongewijzigd.

let op met array_diff() en array_udiff() het verschil is dat de sleutelnaam ook wordt gebruikt voor vergelijking. Vergelijk zowel de sleutelnaam als de waarde, bijvoorbeeld "a"=>1 en "b"=>1 zijn deze twee elementen niet gelijk.

controle van de sleutelnaam (index) wordt ook uitgevoerd door een callback-functie myfunction_key 进行的。 Dit en array_udiff_assoc() gedrag is verschillend, de laatste gebruikt interne functies om indexen te vergelijken.

het vergelijken van arraygegevens wordt uitgevoerd met behulp van een callbackfunctie die door de gebruiker wordt aangeboden myfunction_value uitgevoerd. In dit opzicht en array_diff_assoc() van het gedrag dat precies het tegenovergestelde is, de laatste gebruikt interne functies voor de vergelijking.

Beide functies hebben twee parameters die worden vergeleken. Als de eerste parameter kleiner is dan de tweede parameter, retourneert de functie een negatief getal, als de parameters gelijk zijn, moet 0 worden geretourneerd, en als de eerste parameter groter is dan de tweede, wordt een positief getal geretourneerd.

Syntax

array_udiff_uassoc(array1,array2,array3,...myfunction_key,myfunction_value)
Parameters Beschrijving
array1 Verplicht. De eerste array om met andere arrays te vergelijken.
array2 Verplicht. De array om met de eerste array te vergelijken.
array3,... Optioneel. Andere arrays om met de eerste array te vergelijken.
myfunction_key

Verplicht. De naam van de gebruikersdefinieerde functie die wordt gebruikt om de array-sleutelnamen te vergelijken.

Stringwaarden, die de te roepen vergelijkingfunctie definiëren. Als de eerste parameter kleiner dan of gelijk aan de tweede parameter is, moet de vergelijkingfunctie een integer kleiner dan of gelijk aan 0 retourneren.

myfunction_value

Verplicht. De naam van de gebruikersdefinieerde functie die wordt gebruikt om de array-sleutelwaarden te vergelijken.

Stringwaarden, die de te roepen vergelijkingfunctie definiëren. Als de eerste parameter kleiner dan of gelijk aan de tweede parameter is, moet de vergelijkingfunctie een integer kleiner dan of gelijk aan 0 retourneren.

Technische details

Retourneert: Returnt een array met het verschil, die alle elementen bevat die in de te vergelijken arrays (array1), maar niet in enige andere parameterarrays (array2 of array3 enz.) van de sleutelnamen en -waarden.
PHP Versie: 5+