PHPでは、 array_diff_key()は、2つの配列の差セットを計算するために使用される関数です。最初の配列には存在するが、2番目の配列には存在するすべてのキー価値ペアを含む配列を返します。この関数は、値ではなく配列のキーに基づいて比較されます。
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1
これは、比較される最初の配列です。
$ array2
これは、$ array1と比較される2番目の配列です。この配列のキーは$ array1から削除されます。
$ arrays (オプション)
比較のためにより多くの配列を渡すことができ、 array_diff_key()はこれらの配列から$ array1からキーを削除します。
この関数は、 $ array1に存在するが、 $ array2またはその他の渡された配列には存在しないすべてのキー価値ペアを含む新しい配列を返します。
Array_diff_key()関数を使用した例を次に示します。
<?php
$array1 = [
"apple" => 1,
"banana" => 2,
"cherry" => 3
];
$array2 = [
"banana" => 2,
"cherry" => 3
];
$result = array_diff_key($array1, $array2);
print_r($result);
?>
出力:
Array
(
[apple] => 1
)
この例では、 array_diff_key()は$ array1と$ array2を比較し、キー「Apple」を含む新しい配列を返します。このキーは$ array1でのみ$ array2で存在するためです。
また、複数の配列をarray_diff_key()に渡すこともできます。これは、 $ array1および他のすべての配列のキーを比較して、 $ array1に存在するが他の配列ではないキー値を含むキー値ペアを返します。
<?php
$array1 = [
"apple" => 1,
"banana" => 2,
"cherry" => 3,
"date" => 4
];
$array2 = [
"banana" => 2,
"cherry" => 3
];
$array3 = [
"apple" => 1,
"date" => 4
];
$result = array_diff_key($array1, $array2, $array3);
print_r($result);
?>
出力:
Array
(
[banana] => 2
)
この例では、 array_diff_key()は$ array1と$ array2 、 $ array3を比較し、$ array1でのみ表示されるため、キー「バナナ」を含むアレイを返しますが、 $ array2と$ array3です。
array_diff_key()は、値ではなく、キーベースの比較です。したがって、配列内の値を考慮しておらず、キーで動作するだけです。
複数の配列を渡すと、関数はそれらの配列のキーを比較し、 $ array1の一意のキーを含む配列を返します。
すべての配列にキーが存在する場合、結果にはこのキーが含まれません。
array_diff_key()関数に関するより詳細なドキュメントを表示したい場合は、次のリンクを参照してください。