開発プロセス中に、違いをすばやく見つけるために、構成ファイルをデフォルトの構成と比較する必要があることがよくあります。たとえば、デフォルトの構成配列とユーザー修正構成ファイル配列があるとして、どの構成アイテムが変更、追加、または削除されているかをすばやく確認する必要があります。
PHPは、この種のタスクを処理するために多くの有用な機能を提供し、 array_diff_key()は非常に適切なツールです。
array_diff_key()は、2つの配列のキー名を比較し、最初の配列に存在するが2番目の配列には存在しないキー値ペアを含む配列を返すPHPの組み込み関数です。簡単に言えば、2つの配列に異なるキー名を持つ部品を見つけるのに役立ちます。
デフォルトの構成配列$ defaultConfigとユーザー修正構成配列があると仮定しましょう。デフォルトの構成よりもユーザー構成のさまざまな部分をすばやく見つけたいと考えています。次のことを達成できます。
<?php
// デフォルトの構成
$defaultConfig = [
'site_name' => 'My Website',
'site_url' => 'https://www.example.com',
'site_admin' => 'admin@example.com',
'theme' => 'default',
'timezone' => 'UTC',
];
// ユーザー構成
$userConfig = [
'site_name' => 'Custom Website',
'site_url' => 'https://m66.net', // 修正 URL
'theme' => 'dark', // 修正主题
'timezone' => 'Asia/Shanghai',
];
// 使用 array_diff_key() 比对配置文件和デフォルトの構成
$differences = array_diff_key($userConfig, $defaultConfig);
// 出力の違い
echo "ユーザー構成与デフォルトの構成的差异:\n";
print_r($differences);
?>
デフォルトの構成とユーザー構成:デフォルトの構成とユーザー変更された構成を表す2つの配列を定義します。ユーザー構成は基本的にデフォルトの構成のキー名と同じですが、いくつかの違いがあります( Site_urlやテーマなど)。
array_diff_key()関数: array_diff_key()を使用して$ userconfigと$ defaultconfigを比較します。これは、 $ userconfigにキー値ペアを含む新しい配列を返しますが、 $ defaultconfigではありません。
出力の違い:差セクションはprint_r()を介して出力されるため、ユーザー構成とデフォルトの構成の違いがはっきりとわかります。
上記のコードを実行した後、出力は次のとおりです。
ユーザー構成与デフォルトの構成的差异:
Array
(
[site_name] => Custom Website
[site_url] => https://m66.net
[theme] => dark
)
結果から、デフォルトの構成とは異なるユーザー構成のパーツには次のものがあります。
site_nameは「カスタムWebサイト」に変更されました
Site_urlは「 https://m66.net」に変更されました
テーマは「ダーク」に変更されました
array_diff_key()を使用すると、2つの構成配列の違いをすばやく見つけることができます。この方法は、構成ファイルをデフォルトの構成と比較するのに非常に適しているため、開発者はユーザーの変更を理解し、迅速に調整または最適化できます。