PHPのarray_diff_key関数について書いています。
複数の配列のキーを比較し、最初の配列に存在し、他の配列には存在しないキーを持つ要素を返します。
array_diff関数やarray_diff_assoc関数と似ていますが、array_diff_key関数は値ではなくキーのみを比較対象とします。
この関数を使うと、配列のキーの違いを簡単に検出できます。
例えば、設定ファイルのキーの差分を確認したり、データベースのテーブル構造の差分を確認したりする場合に便利です。
array_diff_key関数の基本的な使い方
array_diff_key関数は、複数の配列のキーを比較し、最初の配列に存在し、他の配列には存在しないキーを持つ要素を返します。
基本的な構文は以下のとおりです。
array_diff_key(array $array1, array ...$arrays): array
$array1: 比較元の配列。- 連想配列を指定します。
$arrays: 比較対象の配列(複数指定可能)。- 連想配列を複数指定できます。
array_diff_key関数の戻り値
array_diff_key関数の戻り値は、最初の配列に存在し、他の配列には存在しないキーを持つ要素を含む配列です。
すべてのキーが他の配列に存在する場合、空の配列を返します。
2つの配列のキーの差を確認する
2つの配列のキーの差分を確認してみます。
<?php
$array1 = ['apple' => 'red', 'banana' => 'yellow', 'orange' => 'orange'];
$array2 = ['apple' => 'green', 'kiwi' => 'brown'];
$result = array_diff_key($array1, $array2);
print_r($result);
// 結果:Array ( [banana] => yellow [orange] => orange )
?>
最初に$array1・$array2の連想配列を作成しています。
次の処理でarray_diff_key関数を使って、$array1と$array2のキーの差を確認しています。
$array1に存在し、$array2には存在しないキーはbananaとorangeなので、これらのキーを持つ要素が返されます。
比較先にkiwiがありますが、比較元にないものだけ返すので注意が必要です。
3つ以上の配列のキーの差を確認する
3つの配列のキーの差を確認します。
<?php
$array1 = ['apple' => 'red', 'banana' => 'yellow', 'orange' => 'orange'];
$array2 = ['apple' => 'green', 'kiwi' => 'brown'];
$array3 = ['apple' => 'blue', 'melon' => 'green'];
$result = array_diff_key($array1, $array2, $array3);
print_r($result);
// 結果:Array ( [banana] => yellow [orange] => orange )
?>
最初に$array1・$array2・$array3の3つの連想配列を作成しています。
次にarray_diff_key関数を使って、$array1、$array2、$array3のキーの差を確認しています。
$array1に存在し、$array2と$array3には存在しないキーはbananaとorangeなので、これらのキーを持つ要素が返されます。
PHPのarray_diff_key関数の使い方まとめ
今回はPHPのarray_diff_key関数の使い方について解説しました。
この記事の内容をまとめます。
・`$array1`は比較元の配列。
・`$arrays`は比較対象の配列(複数指定可能)。
・最初の配列に存在し、他の配列には存在しないキーを持つ要素を含む配列を返す。
・配列のキーの差分を簡単に取得する場合に便利。

コメント