array_diff_uassoc
ユーザーが指定したコールバック関数を利用し、
追加された添字の確認を含めて配列の差を計算する
&reftitle.description;
arrayarray_diff_uassoc
arrayarray
arrayarrays
callablekey_compare_func
array のキーを
arrays のキーと比較し、その差を返します。
この関数は array_diff に似ていますが、
配列のキーを用いて比較するという点が異なります。
array_diff_assoc とは異なり、
内部関数ではなくユーザーが指定したコールバック関数を用いて添字を比較します。
&reftitle.parameters;
array
比較元の配列。
arrays
比較する対象となる配列。
key_compare_func
&sort.callback.description;
&reftitle.returnvalues;
array の要素のうち、
その他の配列のいずれにも含まれないものだけを残した配列を返します。
&reftitle.examples;
array_diff_uassoc の例
この例では、"a" => "green"
の組み合わせが両方の配列に存在し、
関数の出力には存在しないことが確認できます。
これとは異なり、0 => "red" は出力されています。
これは、最初の配列の "red" のキーには自動的に
0 が割り当てられる一方で、
二番目の配列では 0
には既に yellow というキーがあるため、
"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