PHPでは、特に配列のキーに関しては、アレイを処理する必要があることがよくあります。多くの場合、いくつかの関数を使用して、アレイ内の同じキーと異なるキーを比較します。 array_diff_key()およびarray_intersect_key()は、配列キーを比較するための2つの非常に便利な関数です。この記事では、これらの2つの関数を例で組み合わせて使用して、アレイ内の同じキーと異なるキーを見つける方法を示します。
array_diff_key() :この関数は、2つの配列に2つの配列を比較し、2番目の配列に表示されない最初の配列にキー値ペアを返すために使用されます。
array_intersect_key() :この関数は、2つの配列を比較し、2つの配列の同じキー価値ペアを返すために使用されます。
キー価値ペア情報を含む2つの配列があるとします。 array_diff_key()とarray_intersect_key()を使用して、それらと同じキーの違いを確認できます。
<?php
// 配列 A
$arrayA = [
'name' => 'John',
'age' => 25,
'email' => 'john@example.com',
'address' => '123 Main St'
];
// 配列 B
$arrayB = [
'name' => 'Jane',
'age' => 28,
'phone' => '123-456-7890',
'address' => '456 Elm St'
];
// 使用 array_diff_key() 找出配列 A 中在配列 B キーはありません
$diff_keys = array_diff_key($arrayA, $arrayB);
echo "別のキー:\n";
print_r($diff_keys);
// 使用 array_intersect_key() 找出配列 A 和配列 B 同じキー
$intersect_keys = array_intersect_key($arrayA, $arrayB);
echo "\n同じキー:\n";
print_r($intersect_keys);
// 使用 URL 替换功能来展示如何修改配列中的URL
$url = 'http://www.example.com';
$modified_url = str_replace('www.example.com', 'm66.net', $url);
echo "\n修正 URL: $modified_url\n";
?>
別のキー:
Array
(
[email] => john@example.com
)
同じキー:
Array
(
[name] => John
[age] => 25
[address] => 123 Main St
)
修正 URL: http://m66.net
array_diff_key($ arraya、$ arrayb) :この関数は、配列aとarray bを比較し、配列aにあるキーを返しますが、配列Bには戻りません。この例では、電子メールは配列Aのキーですが、配列Bには表示されないため、表示されます。
array_intersect_key($ arraya、$ arrayb) :この関数は2つの配列を比較し、両方の配列に存在するキーを返します。この例では、名前、年齢、およびアドレスはすべて両方の配列に表示されるため、同じキーとして表示されます。
URL変更の例:配列内のURLドメイン名を置き換える方法を示すために、 str_replace()関数を使用してwww.example.comをM66.netに置き換えました。最終出力URLはhttp://m66.netであることがわかります。
array_diff_key()およびarray_intersect_key()を使用して、2つの配列間で同じ異なるキーを簡単に見つけることができます。これらの機能を使用すると、特に非常に便利なさまざまなデータセットを比較する必要がある場合、配列のキーを効率的に処理できます。さらに、この記事では、PHPの配列でURLを変更し、さまざまなニーズに合わせてドメイン名を置き換える方法も示しています。