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; <function>array_diff_uassoc</function> の例 この例では、"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