array_diff_ukey キーを基準にし、コールバック関数を用いて配列の差を計算する 説明 arrayarray_diff_ukey arrayarray1 arrayarray2 array ... callbackkey_compare_func array_diff_ukey は、array1 から他の引数の配列の中に現れない全ての値を含む配列を返します。 キーと値の関係は維持されることに注意してください。この関数は array_diff に似ていますが、 値ではなくキーを用いて比較するという点が異なります。 比較は、ユーザが指定したコールバック関数を利用して行われます。 この関数は、1 つめの引数が 2 つめより小さい / 等しい / 大きい 場合にそれぞれ 負の数 / ゼロ / 正の数 を返す必要があります。 <function>array_diff_ukey</function> の例 $key2) return 1; else return -1; } $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_ukey($array1, $array2, 'key_compare_func')); ?> ]]> &example.outputs; int(2) ["purple"]=> int(4) } ]]> この関数は n 次元配列の一つの次元しかチェックしないことに注意してください。 もちろん、array_diff_ukey($array1[0], $array2[0], 'callback_func'); のようにすることでより深い次元でのチェックもできます。 array_diffarray_udiffarray_diff_assocarray_diff_uassocarray_udiff_assocarray_udiff_uassocarray_diff_keyarray_intersectarray_intersect_assocarray_intersect_uassocarray_intersect_key および array_intersect_ukey も参照ください。