PHPプログラミングでは、アレイで操作のマージと区別を実行する必要があることがよくあります。 array_diff_key()およびarray_merge()は、配列の差動マージを実装するのに役立つPHPの2つの非常に有用な関数です。今日、私たちはこれら2つの機能を掘り下げ、それらを介した配列の違いをマージする方法を示します。
array_diff_key()は、 2つ以上の配列を比較するために使用されるキーであり、異なるキー名を含む配列を返します。構文は次のとおりです。
array_diff_key(array $array1, array $array2, array ...$arrays): array
この関数は、 $ array1のすべてのキーを含む配列を返しますが、他の配列にも存在するキーを除外します。
array_merge()関数は、2つ以上の配列をマージするために使用されます。複数の数値を新しい配列に組み合わせて、マージされた結果を返します。基本的な構文は次のとおりです。
array_merge(array ...$arrays): array
アレイをマージすると、複数の配列に同じキー名がある場合、その後の配列値は、以前の配列の同じキーの値を上書きします。
$ array1と$ array2の2つの配列があり、それらの違い、つまり$ array2ではなく$ array1に存在する要素をマージしたいとします。 Array_diff_key()で差を計算し、 Array_merge()を使用して差をマージできます。
この関数を実装する方法を示すサンプルコードは次のとおりです。
<?php
// 2つの配列を定義します
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry'
];
$array2 = [
'b' => 'blueberry',
'd' => 'date',
'e' => 'elderberry'
];
// 使用 array_diff_key 現れる array1 ユニークなキー
$diff = array_diff_key($array1, $array2);
// 違いの部分をマージします
$result = array_merge($diff, $array2);
echo '<pre>';
print_r($result);
echo '</pre>';
?>
この例では、最初に$ array1に存在するが、 array_diff_key()を介して$ array2 (つまりキー「A」と「C」 )には存在しないキーを見つけます。次に、 array_merge()を使用して、これらの違いを$ array2とマージします。最後に、マージされた配列の結果は出力です。
上記のコードを実行した後、出力の結果は次のとおりです。
Array
(
[a] => apple
[c] => cherry
[b] => blueberry
[d] => date
[e] => elderberry
)
ご覧のとおり、 $ array1の「a '=>' apple 'と' c '=>' cherry 'が保存され、 $ array2の要素がマージされます。
配列にいくつかのURLを含めてドメイン名を置き換える必要があると仮定すると、Mergeプロセス中にURLのドメイン名パーツを置き換えるためにSTR_REPLACE()関数を使用するだけです。例えば: