PHPで2つの配列を照合(比較)するための関数
◎準備:比較用のサンプル配列
$array_a = [‘a’ => ‘apple’, ‘b’ => ‘banana’, ‘c’ => ‘cherry’];
$array_b = [‘a’ => ‘apple’, ‘b’ => ‘blueberries’, ‘d’ => ‘date’];
1. 値の差異を確認する(差分抽出)
$array_a にのみ存在する「値」を抽出
◆array_diff($array1, $array2)
$array1 にあって $array2 にはない「値」を返す。
$diff_values = array_diff($array_a, $array_b);
結果: [‘b’ => ‘banana’, ‘c’ => ‘cherry’]
キーと値の両方が一致しないものを抽出
◆array_diff_assoc($array1, $array2)
値だけでなく 「キー」 も含めて比較し、差分を返す。
$diff_assoc = array_diff_assoc($array_a, $array_b);
結果: [‘b’ => ‘banana’, ‘c’ => ‘cherry’] (bは値が違うため抽出される)
2. 共通する要素を確認する(積集合)
両方の配列に存在する要素を探す場合に使用。
◆array_intersect($array1, $array2)
$intersect_values = array_intersect($array_a, $array_b);
// 結果: [‘a’ => ‘apple’]
キーと値の両方が一致するものを抽出
◆array_intersect($array1, $array2)
$intersect_assoc = array_intersect_assoc($array_a, $array_b);
// 結果: [‘a’ => ‘apple’]
3. 全く同じかどうかを確認する(一致判定)
$list1 = [1, 2, 3];
$list2 = [‘1’, ‘2’, ‘3’];
ゆるい比較(順序が同じで、値が同等ならtrue)
$is_equal = ($list1 == $list2); // true
厳密な比較(順序、型、値すべてが一致ならtrue)
$is_identical = ($list1 === $list2); // false (型が違うため)
連想配列の順序を無視して中身が同じか判定したい場合
$arr1 = [‘x’ => 1, ‘y’ => 2];
$arr2 = [‘y’ => 2, ‘x’ => 1];
$arr1 == $arr2 は true / $arr1 === $arr2 は false
2つの配列の内容が同一かどうかを判定する場合。
◆== 演算子: キーと値のペアが等しいか(順序は問わない)。
◆=== 演算子: キー、値、および 「順序と型」 まで完全に一致するか。


