関数の概要
array_diffは、PHPの配列操作関数の一つで、複数の配列を比較し、最初の配列にだけ存在する要素を取得するために使われます。つまり、差分を求めるための関数で、配列の値の違いを効率的に調べたいときに便利です。
パラメータの説明
array $array1– 差分を取得したい基準となる配列です。array ...$arrays– 比較対象となる配列を1つ以上指定します。後続の配列に含まれている値は除外されます。
戻り値
基準配列($array1)の中で、比較対象配列に存在しない値のみを含む新しい配列が返されます。キーは基準配列のものが保持されます。また、全ての比較対象配列に含まれる要素が基準配列内にあれば、空の配列が返されます。
使用例
基本的な使い方
<?php
$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "date"];
$result = array_diff($array1, $array2);
print_r($result);
?>
この例では、$array1にある”apple”と”cherry”が$array2にないため、これらが結果配列として返されます。
複数配列との比較
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 3];
$array3 = [4];
$result = array_diff($array1, $array2, $array3);
print_r($result);
?>
この例では、$array2と$array3の要素(2, 3, 4)が除かれ、1と5だけが残ります。
文字列の差分を取得
<?php
$array1 = ["red", "green", "blue"];
$array2 = ["green", "yellow"];
$result = array_diff($array1, $array2);
print_r($result);
?>
この場合、"green"は両方にあるため除かれ、"red"と"blue"が結果に残ります。
関連する関数
array_intersect– 配列の共通部分を取得するarray_diff_assoc– キーと値の両方で差分を取得するarray_diff_key– キーの違いを基準に差分を取得するarray_unique– 配列の重複する値を除去する
まとめ
array_diffは、配列の中から特定の値を除外したり、2つ以上の配列の違いを簡単に見つけたいときに便利な関数です。初心者でも扱いやすく、実務でも配列の値を比較・抽出する場面で頻繁に使われます。複数の配列を比較できるため、条件に応じて柔軟に活用しましょう。
