array_diff_key()関数は、2つ以上の配列パラメーターを取得し、最初の配列に存在するが他の配列には存在するキーを含む配列を返します。構文は次のとおりです。
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1 :最初の配列、比較のためのベンチマークアレイ。
$ array2 :2番目の配列、ベンチマークアレイを比較するオブジェクト。
$ arrays :オプションのパラメーター、複数の配列を複数の比較に渡すことができます。
返品結果は、$ array1に存在するが、 $ array2には存在するキー価値ペアを含む配列です。
同じ構成アイテムを含む2つの構成配列があると仮定しますが、一部の構成アイテムにはキー名と内容に違いがある場合があります。 array_diff_key()関数を使用すると、これらの違いを簡単に見つけることができます。
Array_diff_key()を使用して2つの構成配列を比較し、一貫性のないエントリをすばやく見つける方法を示すサンプルコードを次に示します。
<?php
// 配列を構成します 1
$config1 = [
'db_host' => 'localhost',
'db_name' => 'my_database',
'db_user' => 'root',
'db_password' => 'password123',
'api_url' => 'https://m66.net/api/v1',
'cache_enabled' => true,
];
// 配列を構成します 2
$config2 = [
'db_host' => 'localhost',
'db_name' => 'my_database',
'db_user' => 'admin',
'db_password' => 'password123',
'cache_enabled' => true,
'api_url' => 'https://m66.net/api/v2', // さまざまなバージョン
];
// 使用 array_diff_key() 構成の違いを見つけます
$differences = array_diff_key($config1, $config2);
// 出力の違い
echo "存存在するする config1 真ん真ん中,但不存存在するする config2 真ん構成アイテム:\n";
print_r($differences);
?>
上記のコードを実行すると、出力は次のとおりです。
存存在するする config1 真ん真ん中,但不存存在するする config2 真ん構成アイテム:
Array
(
[api_url] => https://m66.net/api/v1
[db_user] => root
)
結果から、 DB_USERおよびAPI_URL構成アイテムの値が2つの配列で異なることがわかります。 db_userはconfig2で管理者に変更されますが、 api_urlのバージョン番号は異なります。
このアプローチを使用すると、2つの構成配列間の矛盾を明確に識別できます。
実際の開発では、複数の構成ファイルまたは複数の異なる環境の構成を比較する必要がある場合があります(たとえば、開発環境、生産環境など)。 array_diff_key()関数を介して、開発者は構成ファイル間に存在するさまざまな部分を簡単に見つけることができます。これは、構成エラーのトラブルシューティングや不足している構成アイテムの検索に非常に役立ちます。