array_diff_key

(PHP 5 >= 5.1.0RC1)

array_diff_key -- キーを基準にして配列の差を計算する

説明

array array_diff_key ( array array1, array array2 [, array ...] )

array_diff_key() は、array1 から他の引数の配列の中に現れない全ての値を含む配列を返します。 キーと値の関係は維持されることに注意してください。この関数は array_diff() に似ていますが、値ではなくキーを 用いて比較するという点が異なります。

例 1. array_diff_key() の例

<?php
$array1
= array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

上の例の出力は以下となります。

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

二つの要素は、(string) $elem1 === (string) $elem2 の場合のみ等しいと見なされます。言い換えると、文字列表現が同じ場合と なります。

注意: この関数は n 次元配列の一つの次元しかチェックしないことに注意してください。 もちろん、array_diff_key($array1[0], $array2[0]); のようにすることでより深い次元でのチェックもできます。

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() も参照ください。