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