PHP array_uintersect() 関数

キー値を比較する2つの配列(ユーザー定義関数を使用してキー値を比較する)を比較し、交差点を返します:

<?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"=>"blue","b"=>"black","e"=>"blue");
$result=array_uintersect($a1,$a2,"myfunction");
print_r($result);
?>

実行例

定義と用法

array_uintersect() 関数は2つ(またはそれ以上)の配列のキー値を比較し、比較された配列の交差点を返します。

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

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

構文

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

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

第1引数が第2引数以下または以上である場合、比較関数は小さいまたは大きい0以上の整数を返さなければなりません。

説明

ユーザー定義のコールバック関数を使用して myfunction 2つまたは複数の配列の交差点(即ち array1 他の任何の配列に存在するすべての配列要素が存在する中に存在するすべての配列要素が存在する配列を返します。

キー値の比較のみを行い、キー名を比較しません。例えば「a」=>1 と「b」=>1 のこれら2つの要素は同じと見なされます。

myfunction 指定されたパラメータを使用して要素が等しいかどうかを比較するための関数を使用します。myfunction この関数は2つの比較するパラメータを持っています。最初のパラメータが二番目のパラメータより小さい場合、関数は負の数を返します。二つのパラメータが等しい場合、0を返します。最初のパラメータが二番目のパラメータより大きい場合、正の数を返します。

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

技術的詳細

返り値:

返される配列は、 array1 の中で、すべての他の配列の中にも存在するユニットを含む交差点配列を返します。

比較されたすべての配列(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","yellow");
$a2=array("A"=>"red","b"=>"GREEN","yellow","black");
$a3=array("a"=>"green","b"=>"red","yellow","black");
$result=array_uintersect($a1,$a2,$a3,"myfunction");
print_r($result);
?>

実行例