array_diff_assoc()は、2つの配列を比較するPHPで非常に便利な関数であり、最初の配列にあるが2番目の配列ではないキー値ペアを返します。具体的には、配列の値だけでなく、配列のキーも比較します。このようにして、 array_diff_assoc()関数は、キー名とキー値の間の対応を考慮するため、 array_diff()よりも正確です。
この記事では、グラフィカルな方法を使用して、array_diff_assoc()関数がどのように機能するかをよりよく理解するのに役立ちます。簡単な例から始めて、この機能の動作を段階的に説明しましょう。
array_diff_assoc(array $array1, array $array2): array
<?php
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 4,
"d" => 5
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Array
(
[b] => 2
[c] => 3
)
この例では、 array_diff_assoc()はarray1とarray2を比較します。段階的にどのように機能するかを分析しましょう。
キーA :
array1とarray2のキーAの値は両方とも1であるため、このキー価値ペアのペアに違いはありません。
キーB :
array1では、キーBの値は2ですが、配列2では、キーBの値は4です。キー値は一貫性がないため、 b => 2はarray1に固有のキー価値ペアと見なされ、結果に表示されます。
キーC :
array1では、キーcの値は3ですが、 array2にはキーcはありません。したがって、 C => 3は、 array1に固有のキー価値ペアと見なされ、結果に表示されます。
したがって、 array_diff_assoc()は、 b => 2およびc => 3を含む配列を返します。
array_diff_assoc()の動作原理をより直感的に理解するために、イラストを介して2つの配列の比較プロセスを表示できます。
2つの配列があるとします。
array1 : ["a" => 1、 "b" => 2、 "c" => 3]
array2 : ["a" => 1、 "b" => 4、 "d" => 5]
次の図を通してそれらの違いをはっきりと見ることができます。
array1: [ "a" => 1, "b" => 2, "c" => 3 ]
↑ ↑
array2: [ "a" => 1, "b" => 4, "d" => 5 ]
↑
キーA :同じ(キーとバリューの両方の一致)。そのため、結果はありません。
キーB :キーは同じですが、値は異なります。違いはarray1に固有のものと見なされるため、結果に表示されます。
キーC : array2にキーCはありません。 C => 3はArray1に固有のものと見なされるため、結果にも表示されます。
Result: [ "b" => 2, "c" => 3 ]
array_diff_assoc() arrayを値で比較するだけでなく、キーマッチングも考慮しています。 2つの配列に同じキーがあるが、異なる値がある場合、 array_diff_assoc()はそれを違いとして扱います。
Array2にキーがまったくない場合( Cなど)、キー値ペアはArray1に固有のものと見なされ、結果Arrayにも表示されます。
データの違いのフィルタリング:配列データを処理する場合、 array_diff_assoc()を使用して、特に2つの配列のキーと値が正確に一致する必要がある場合、ある配列の違いを別の配列から見つけることができます。
構成配列の処理:2つの構成配列を比較し、異なる構成アイテムがあるかどうかを確認する必要がある場合、 array_diff_assoc()が非常に良い選択です。
データの重複排除:2つのデータセットがある場合、データセットの一意の部分を見つけたい場合は、 array_diff_assoc()を使用してそれを達成できます。
array_diff_assoc()は、PHPの非常に実用的な機能であり、2つの配列のキー値ペアの違いを比較し、微分キー値ペアを含む配列を返すのに役立ちます。 Array1とArray2の例を比較することにより、キーと値を同時に比較することにより、違いをどのように判断するかを理解します。
ご質問がある場合、またはPHPの他のアレイ操作機能をより深く理解したい場合は、お気軽に話し合ってください!