array_diff_key キーを基準にして配列の差を計算する &reftitle.description; arrayarray_diff_key arrayarray arrayarrays array のキーを arrays のキーと比較し、その差を返します。 この関数は array_diff に似ていますが、 値ではなくキーを用いて比較するという点が異なります。 &reftitle.parameters; array 比較元の配列。 arrays 比較する対象となる配列。 &reftitle.returnvalues; array の要素のうち、 その他の配列のいずれにも含まれないキーのものだけを残した配列を返します。 &reftitle.changelog; &Version; &Description; &array.changelog.require-only-one; &reftitle.examples; <function>array_diff_key</function> の例 ふたつの key => value のペアが等しいとみなされるのは、 (string) $key1 === (string) $key2 である場合のみです。つまり、厳密な型チェックを行うということです。 文字列表現が一致しなければなりません。 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_key($array1, $array2)); ?> ]]> &example.outputs; int(1) ["red"]=> int(2) ["purple"]=> int(4) } ]]> 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8); $array3 = array('blue' => 6, 'yellow' => 7, 'mauve' => 8); var_dump(array_diff_key($array1, $array2, $array3)); ?> ]]> &example.outputs; int(2) ["purple"]=> int(4) } ]]> &reftitle.notes; この関数は n 次元配列の一つの次元しかチェックしません。 もちろん、array_diff_key($array1[0], $array2[0]); のようにすることでより深い次元でのチェックもできます。 &reftitle.seealso; array_diff array_udiff array_diff_assoc array_diff_uassoc array_udiff_assoc array_udiff_uassoc array_diff_ukey array_intersect array_intersect_assoc array_intersect_uassoc array_intersect_key array_intersect_ukey