PHP array_diff_uassoc() 関数

キー名とキー値を比較し(ユーザー定義関数を使用してキー名を比較する)、差集合を返します:

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

実行例

定義と使用法

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

注記:この関数はユーザー定義関数を使用してキー名を比較します!

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

構文

array_diff_uassoc(array1,array2,array3,...myfunction);
パラメータ 説明
array1 必須。他の配列と比較する最初の配列。
array2 必須。最初の配列と比較する配列。
array3,... オプション。最初の配列と比較する他の配列。
myfunction 必須。比較関数を定義する文字列。最初の引数が第2引数より小さい、等しい、または大きい場合、比較関数は小于、等しい、または大きい整数を返さなければなりません。

説明

array_diff_uassoc() 関数はユーザー定義のカールバック関数 (callback) を使用してインデックスチェックを行い、2つまたは複数の配列の差集合を計算します。差集合配列を返します。この配列には、比較された配列( array1 に含まれるが、他のすべてのパラメータ配列に含まれない値。

注意事項:array_diff() 関数とは異なり、キー名も比較されます。

パラメータ myfunction は、2つの配列のキー名を比較するユーザー定義関数であり、この関数は2つの引数(比較するキー名)を持たなければなりません。したがって、array_diff_assoc() 関数の動作とは正反対で、内部関数を使用して比較を行います。

返される配列のキー名は変更されません。

技術的な詳細

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

さらに多くの例

例 1

3つの配列のキー名とキー値を比較し(ユーザー定義関数を使用してキー名を比較)、差集合を返します:

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

実行例