array_diff

関数の概要

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)が除かれ、15だけが残ります。

文字列の差分を取得

<?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つ以上の配列の違いを簡単に見つけたいときに便利な関数です。初心者でも扱いやすく、実務でも配列の値を比較・抽出する場面で頻繁に使われます。複数の配列を比較できるため、条件に応じて柔軟に活用しましょう。