array_diff_uassoc
ユーザーが指定したコールバック関数を利用し、
追加された添字の確認を含めて配列の差を計算する
&reftitle.description;
arrayarray_diff_uassoc
arrayarray1
arrayarray2
array...
callablekey_compare_func
array1 のキーを
array2 のキーと比較し、その差を返します。
この関数は array_diff に似ていますが、
配列のキーを用いて比較するという点が異なります。
array_diff_assoc とは異なり、
内部関数ではなくユーザーが指定したコールバック関数を用いて添字を比較します。
&reftitle.parameters;
array1
比較元の配列。
array2
比較する対象となる配列。
...
さらに比較する対象となる配列。
key_compare_func
&return.callbacksort;
&callback.cmp;
&reftitle.returnvalues;
array1 の要素のうち、
その他の配列のいずれにも含まれないものだけを残した配列を返します。
&reftitle.examples;
array_diff_uassoc の例
"a" => "green" の組み合わせが両方の配列に存在し、
関数の出力には存在しないことが確認できます。
これとは異なり、0 => "red" は出力されています。
なぜなら 2 つめの引数の "red" は、キーが
1 だからです。
$b)? 1:-1;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
]]>
&example.outputs;
brown
[c] => blue
[0] => red
)
]]>
2 つのインデックスが等しいかどうかは、
ユーザーが指定したコールバック関数で調べます。
&reftitle.notes;
この関数は n 次元配列の一つの次元しかチェックしません。
もちろん、array_diff_uassoc($array1[0], $array2[0], "key_compare_func");
のようにすることでより深い次元でのチェックもできます。
&reftitle.seealso;
array_diff
array_diff_assoc
array_udiff
array_udiff_assoc
array_udiff_uassoc
array_intersect
array_intersect_assoc
array_uintersect
array_uintersect_assoc
array_uintersect_uassoc