【PHP入門】配列を比較する方法

PHPでは、配列を使用してさまざまな処理が可能です。この記事では、

  • 配列のさまざまな比較方法

という基本的な内容から、

  • 配列を比較して差分を取得する方法
  • 配列を比較して重複した値を取得する

などの応用的な使い方に関しても解説していきます。今回はそんな配列を比較するさまざまな方法について、わかりやすく解説します!

目次

配列を比較する

ここでは、比較演算子を使用して、配列を比較する基本的な方法を紹介します。

キーと値のペアが等しいか比較する

キーと値のペアが等しいか確認する場合には、比較演算子”==”を使用します。戻り値はbool型の値を返します。(等しい場合はTRUE)

$配列名1 == $配列名2

以下に比較演算子”==”を使用した配列の比較方法を記述します。

<?php

$fruits1 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$fruits2 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];

if ($fruits1 == $fruits2){
  echo '等しいです';
}else{
  echo '等しくないです';
}

?>
実行結果
等しいです

実行結果の通り、比較した配列は要素数も値も同一のため、”==”で比較するとtrueを返します。以下の配列を比較すると、結果はfalseを返します。

$fruits1 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$fruits3 = ['apple', 'orange', 'melon'];

並び順・データ型が等しいか比較する

キーと値のペアや並び順、データ型も等しいか確認するには比較演算子”===“を使用します。

そのため、特にキーと値を明確に指定する必要のある連想配列を比較する場合は”===“の使用をオススメします。戻り値はbool型の値を返します。(等しい場合はTRUE)

$配列名1 === $配列名2

以下に比較演算子”===”を使用した配列の比較方法を記述します。

<?php

$fruits1 = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple'];
$fruits2 = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple'];
$fruits3 = ['orange', 'apple', 'melon', 'banana', 'pineapple'];

//連想配列同士の比較
if ($fruits1 === $fruits2){
  echo '等しいです';
}else{
  echo '等しくないです';
}

echo '<br>';

//連想配列と1次元配列の比較
if ($fruits1 === $fruits3){
  echo '等しいです';
}else{
  echo '等しくないです';
}

?>
実行結果
等しいです
等しくないです

等しくないか確認する

比較する配列同士が等しいか確認するには比較演算子”!=“を使用します。戻り値はbool型の値を返します。(等しくない場合はTRUE)

$配列名1 != $配列名2

以下に比較演算子”!=“を使用した配列の比較方法を記述します。

<?php

$fruits1 = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple'];
$fruits2 = [0=>'apple', 1=>'orange', 2=>'melon'];
if ($fruits1 != $fruits2){
  echo '等しくないです';
}else{
  echo '等しいです';
}

?>
実行結果
等しくないです

なお、比較演算子”<>”を使用しても同じ結果が得られます。

同一ではないか確認する

比較する配列同士が同一ではないか確認するには,比較演算子”!==”を使用します。戻り値はbool型の値を返します。(同一ではない場合はTRUE)

$配列名1 !== $配列名2

以下に比較演算子”!==“を使用した配列の比較方法を記述します。

<?php

$fruits1 = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple'];
$fruits2 = [0=>'apple', 1=>'orange', 2=>'melon'];
if ($fruits1 !== $fruits2){
  echo '同一ではありません';
}else{
  echo '同一です';
}

?>
実行結果
同一ではありません

配列を比較して差分を取得する

array_diff関数を使用する

array_diff関数は、配列1と配列2を比較して、配列1の要素の中で他の配列にない値だけを返します。

array_diff($配列1, $配列2[, $配列3 …])

以下にarray_diff関数を使用して、配列を比較して差分を取得する方法を記述します。

<?php

$fruits1 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$fruits2 = ['apple', 'orange', 'melon'];

//array_diffを使用して差分を取得する
$fruits_diff = array_diff($fruits1, $fruits2);

foreach($fruits_diff as $value){
  echo $value;
  echo '<br>';
}

?>
実行結果
banana
pineapple

配列を比較して重複した値を取得する

配列の重複した値を取得する方法については、以下の記事で詳しく解説しています!

配列についてもっと詳しく知りたい方へ

配列のさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここでは配列を比較するさまざまな方法や、配列を比較して差分を取得する方法などを解説しました。配列を扱った処理は、実際の開発でもよく使用しますので、この機会にぜひ覚えておきましょう。

もし、配列を比較する方法を忘れてしまったら、この記事を思い出してくださいね!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次