PHP array_intersect_uassoc()関数
例
キー名とキー値を比較する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("d"=>"red","b"=>"green","e"=>"blue"); $result=array_intersect_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
定義と用法
array_intersect_uassoc()関数は、2つ(またはそれ以上)の配列のキー名とキー値を比較し、交集合を返します。
注釈:この関数はユーザー定義関数を使用してキー名を比較します!
この関数は2つ(またはそれ以上)の配列のキー名とキー値を比較し、交集合を返します。交集合は比較された配列(array1)に加えて、他のすべてのパラメータ配列(array2 または array3 など)のキー名およびキー値。
説明
array_intersect_uassoc()関数はユーザー定義のコールバック関数を使用して配列の交集合を計算し、インデックスを比較します。
array_intersect_uassoc()は、すべての被比較の配列に存在するものを含む配列を返します。 array1 すべての他の引数の配列に同時に存在する値も含まれます。返される配列のキー名は変更されません。
注意:array_intersect()とは異なり、キー値だけでなくキー名も比較します。
この比較はユーザーが提供するコールバック関数によって行われます。この関数には、比較するキー名が2つあります。最初の引数が2番目の引数より小さい場合、関数は負の数を返します。もし2つの引数が等しい場合、0を返します。最初の引数が2番目の引数より大きい場合、正の数を返します。
文法
array_intersect_uassoc(array1,array2,array3...myfunction)
パラメータ | 説明 |
---|---|
array1 | 必須。他の配列と比較する第1配列。 |
array2 | 必須。第1配列と比較する配列。 |
array3,... | オプション。第1配列と比較する他の配列。 |
myfunction | 必須。呼び出せる比較関数を定義する文字列。 |
技術的詳細
返り値: | 交差点配列を返します。この配列は、比較されたすべての配列(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_intersect_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>