配列を使用するシステムでは、複数の配列の差分を取得する際などに 配列の比較を行うことがあります。
今回は比較演算子、array_diff 、array_intersectの3つの方法で、比較するやり方を紹介します。
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2021年6月24日
配列の比較を行う際に使用する比較演算子には、次のようなものがあります。
== | 等しい |
---|---|
=== | 等しい( データ型及び連想配列の並び順も比較 ) |
!= | 等しくない |
!== | 等しくない( データ型及び連想配列の並び順も比較 ) |
● 要素も要素の並び順も同一の配列
$ary1 = array("red", "blue", "green");
$ary2 = array("red", "blue", "green");
この場合、$ary1 == $ary2 、$ary1 === $ary2 共に true と判定されます。
● 要素は同一で並び順が違う配列
$ary1 = array("red", "blue", "green");
$ary2 = array("green", "red", "blue");
この場合、$ary1 == $ary2 、$ary1 === $ary2 共に false と判定されます。
● 重複要素がある配列
$ary1 = array("red", "blue", "green");
$ary2 = array("red", "blue", "green", "red");
この場合、$ary1 == $ary2 、$ary1 === $ary2 共に false と判定されます。
● 連想配列と通常配列の比較
$ary1 = array("red", "blue", "green");
$ary2 = array("R"=>"red", "B"=>"blue", "G"=>"green");
この場合、$ary1 == $ary2 、$ary1 === $ary2 共に false と判定されます。
$ary1 = array("red", "blue", "green");
$ary2 = array(0=>"red", 1=>"blue", 2=>"green");
この場合、$ary1 == $ary2 、$ary1 === $ary2 共に true と判定されます。
$ary1 = array("red", "blue", "green");
$ary2 = array(1=>"blue", 2=>"green", 0=>"red");
この場合、$ary1 == $ary2 は true、 $ary1 === $ary2 は false と判定されます。
array_diff 関数は、複数の配列を比較して 最初に指定する配列の要素で他の配列にないものを返す関数です。
array_diff 関数は、次のように記述して使用します。
array_diff($array1, $array2[, $array3, ・・・]);
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$ary1 = array("red", "blue", "green");
$ary2 = array("pink", "gray", "red");
$val = array_diff($ary1, $ary2);
print_r($val);
?>
</pre>
$ary1 の要素で $ary2 にはない「 blue 」と「 green 」が array_diff($ary1, $ary2) の戻り値として 配列変数 $val に代入されます。
変数を介さず、「 print_r(array_diff($ary1, $ary2)); 」として 戻り値を直接出力しても同じ結果が得られます。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
array_intersect 関数は、複数の配列を比較して 最初に指定する配列の要素で他の全配列にあるものを返す関数です。
array_intersect 関数は、次のように記述して使用します。
array_intersect ( $array1 , $array2 [ , $array3 , ・・・ ]) ;
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$ary1 = array("red", "blue", "green");
$ary2 = array("pink", "red", "green");
$ary3 = array("green", "red", "gray");
$val = array_intersect($ary1, $ary2, $ary3);
print_r($val);
?>
</pre>
$ary1 の要素で $ary2 及び $ary3 にもある「 red 」と「 green 」が array_diff($ary1, $ary2, $ary3) の戻り値として 配列変数 $val に代入されます。
変数を介さず、「 print_r(array_intersect($ary1, $ary2, $ary3)); 」として 戻り値を直接出力しても同じ結果が得られます。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP での配列の比較について、いかがでしたでしょうか。
「Webプログラマになりたいけど、独力では限界がある」と感じていらっしゃる方には、「プログラマカレッジ」がおすすめです。
プログラマカレッジは、本気でプログラマを目指す方のための受講料無料の研修所です。
今回ご紹介した「PHP」を含む豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。
INTERNOUS,inc. All rights reserved.