PHP array_udiff_uassoc() 函数

实例

比较两个数组的键名和键值(使用用户自定义函数进行比较),并返回差集:

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

运行实例

定义和用法

array_udiff_uassoc() 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。

注释:该函数使用两个用户自定义函数进行比较;第一个函数比较键名,第二个函数比较键值!

该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1en, aber nicht in einem anderen Parameterarray (array2 oder array3 etc.) die Schlüsselnamen und -werte.

说明

array_udiff_uassoc() 函数返回 array1 数组中存在但其它数组中都不存在的部分。返回的数组中键名保持不变。

注意与 array_diff() 以及 array_udiff() 不同的是键名也用于比较。同时进行键名和键值的比较,如 "a"=>1 和 "b"=>1 这两个元素是不相等的。

对键名(索引)的检查也是由回调函数 myfunction_key 进行的。这和 array_udiff_assoc() verhalten ist unterschiedlich, die letztere verwendet interne Funktionen zum Vergleich der Indizes.

Vergleich der Array-Daten wird mit dem von Benutzer bereitgestellten Callback-Funktion myfunction_value vorgenommen. In diesem Sinne und array_diff_assoc() verhalten ist genau umgekehrt, die letztere verwendet interne Funktionen zum Vergleichen.

Diese beiden Funktionen haben zwei Parameter, die verglichen werden sollen. Wenn der erste Parameter kleiner als der zweite Parameter ist, gibt die Funktion ein negatives Zahl zurück, wenn die beiden Parameter gleich sind, gibt sie 0 zurück, wenn der erste Parameter größer als der zweite ist, gibt sie eine positive Zahl zurück.

Syntax

array_udiff_uassoc(array1,array2,array3,...myfunction_key,myfunction_value)
Parameter Beschreibung
array1 Erforderlich. Erster Array, der mit anderen Arrays verglichen wird.
array2 Erforderlich. Array, das mit dem ersten Array verglichen wird.
array3,... Optional. Weitere Arrays, die mit dem ersten Array verglichen werden.
myfunction_key

Erforderlich. Name der benutzerdefinierten Funktion zur Vergleichsrechnung der Array-Schlüsselnamen.

Zeichenkettenwerte, die den zu aufrufenden Vergleichsfunktion definieren. Wenn der erste Parameter kleiner gleich oder größer als der zweite Parameter ist, muss die Vergleichsfunktion einen kleiner gleich oder größer 0 sein.

myfunction_value

Erforderlich. Name der benutzerdefinierten Funktion zur Vergleichsrechnung der Array-Schlüsselwerte.

Zeichenkettenwerte, die den zu aufrufenden Vergleichsfunktion definieren. Wenn der erste Parameter kleiner gleich oder größer als der zweite Parameter ist, muss die Vergleichsfunktion einen kleiner gleich oder größer 0 sein.

Technische Details

Rückgabewert: gibt das Differenzarray zurück, das alle in den verglichenen Arrays enthaltenen Elemente umfasst (array1en, aber nicht in einem anderen Parameterarray (array2 oder array3 etc.) die Schlüsselnamen und -werte.
PHP Version: 5+