【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

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

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

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

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

まとめ

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

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

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部として、これまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。プログラミング初学者に向けてわかりやすく、ためになるコンテンツ作りを心がけています。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー