array_diff_assoc
追加された添字の確認を含めて配列の差を計算する
&reftitle.description;
arrayarray_diff_assoc
arrayarray
arrayarrays
array を arrays と比較し、
その差を返します。array_diff とは異なり、
配列のキーも用いて比較を行います。
&reftitle.parameters;
array
比較元の配列。
arrays
比較する対象となる配列。
&reftitle.returnvalues;
array の要素のうち、
その他の配列のいずれにも含まれないものだけを残した配列を返します。
&reftitle.changelog;
&Version;
&Description;
&array.changelog.require-only-one;
&reftitle.examples;
array_diff_assoc の例
この例で、"a" => "green" の組が両方の配列に現れており、
このため、この関数の出力には含まれていません。
これとは異なり、0 => "red" は出力の中に現れています。
これは、最初の配列の "red" のキーには自動的に
0 が割り当てられる一方で、
二番目の配列では 0
には既に yellow というキーがあるため、
"red" には 1 が割り当てられるためです。
"green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
]]>
&example.outputs;
brown
[c] => blue
[0] => red
)
]]>
array_diff_assoc の例
key => value の組からの二つの値は、
(string) $elem1 === (string) $elem2
が成り立つ場合のみ等しいと見なされます。
言い替えると、厳密なチェックが行われるため、
文字列表現が同じである必要があります。
]]>
&example.outputs;
0
[1] => 1
)
]]>
&reftitle.notes;
この関数は、N 次元配列の一次元だけを調べます。例えば
array_diff_assoc($array1[0], $array2[0]);
とすることにより、より深い次元でチェックを行うことも可能です。
同様の配列で、より多くのキーがあるものを比較するときには、引数を正しい順で渡すようにしましょう。
新しい配列が、リストの先頭になければいけません。
&reftitle.seealso;
array_diff
array_diff_uassoc
array_udiff_assoc
array_udiff_uassoc
array_intersect
array_intersect_assoc