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
配列を比較して重複した値を取得する
配列の重複した値を取得する方法については、以下の記事で詳しく解説しています!
配列についてもっと詳しく知りたい方へ
配列のさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
まとめ
ここでは配列を比較するさまざまな方法や、配列を比較して差分を取得する方法などを解説しました。配列を扱った処理は、実際の開発でもよく使用しますので、この機会にぜひ覚えておきましょう。
もし、配列を比較する方法を忘れてしまったら、この記事を思い出してくださいね!