PHP array_udiff_assoc() 関数

キー名とキー値を比較する二つの配列(キー名は内蔵関数で比較、キー値はユーザー定義関数で比較)を差集合を返します:

<?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"=>"blue","c"=>"green");
$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result);
?>

実行例

定義と使用法

array_udiff() 関数は、2つの(またはそれ以上の)配列のキー名とキー値を比較し、差集合を返します。

注釈:この関数は、内蔵関数を使用してキー名を比較し、ユーザー定義関数を使用してキー値を比較します。

この関数は、2つの(またはそれ以上の)配列のキー名とキー値を比較し、差集合数を返します。この集合は、比較された配列(array1)に含まれるが、他のすべてのパラメータ配列(array2 または array3 (など)のキー名とキー値。

説明

array_udiff_assoc() 関数は返します array1 他の配列には存在するが、他の配列には存在しない部分。

注意与 array_diff() および array_udiff() の違いは、キー名も比較に使用されることです。キー名とキー値の両方を比較します。例えば、「a」=>1 と「b」=>1 という2つの要素は異なるです。

配列データの比較はユーザーが提供するコールバック関数で行われます。この点で、 array_diff_assoc() 動作は正反対で、後者は内部関数を使用して比較を行います。

array_udiff_assoc() 関数の myfunction 引数で指定された関数が要素が等しいかどうかを比較するために使用されます。myfunction 関数には比較を行うために2つの引数があります。最初の引数が2番目の引数以下である場合、関数は負の数を返し、2つの引数が等しい場合、0を返し、最初の引数が2番目の引数以上である場合、正の数を返します。

文法

array_udiff_assoc(array1,array2,array3,...myfunction)
引数 説明
array1 必須。他の配列と比較する最初の配列。
array2 必須。最初の配列と比較する配列。
array3,... オプション。最初の配列と比較する他の配列。
myfunction

必須。文字列値、呼び出し可能な比較関数を定義します。

最初の引数が2番目の引数以下、または以上である場合、比較関数は0以下または0以上の整数を返さなければなりません。

技術的詳細

返り値: 差集合配列を返します。この配列は、比較されたすべての配列(array1)に含まれるが、他のすべてのパラメータ配列(array2 または array3 (など)のキー名とキー値。
PHP バージョン: 5+