ITコラム

PHP 配列 比較

PHP

2019.02.21

PHP【 配列 】要素を比較

配列を使用するシステムでは、複数の配列の差分を取得する際などに 配列の比較を行うことがあります。
今回は比較演算子、array_diff 、array_intersectの3つの方法で、比較するやり方を紹介します。

最終更新日:2021年6月24日

目次

1. 比較演算子で比較
2. array_diff で比較
3. array_intersect で比較
4. 開発環境と配列の使用方法
5. まとめ
 

1. 比較演算子で比較

 
配列の比較を行う際に使用する比較演算子には、次のようなものがあります。

== 等しい
=== 等しい( データ型及び連想配列の並び順も比較 )
!= 等しくない
!== 等しくない( データ型及び連想配列の並び順も比較 )

 
● 要素も要素の並び順も同一の配列

$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 と判定されます。

▲目次へ戻る

 

2. array_diff で比較

 
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 で出力をご参照下さい。

▲目次へ戻る

 

3. array_intersect で比較

 
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 で出力をご参照下さい。

▲目次へ戻る

 

4. 開発環境と配列の使用方法

 
本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。


 
また、PHPの配列自体に関するその他の使用方法を知りたい方は、該当する記事をまとめましたので、ご参照下さい。

▲目次へ戻る

 

5. まとめ

 
PHP での配列の比較について、いかがでしたでしょうか。

「Webプログラマになりたいけど、独力では限界がある」と感じていらっしゃる方には、「プログラマカレッジ」がおすすめです。
プログラマカレッジは、本気でプログラマを目指す方のための受講料無料の研修所です。

今回ご紹介した「PHP」を含む豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。

→ 就職支援付き無料プログラミングスクール「プログラマカレッジ

▲目次へ戻る

SHARE

最新記事

zoom_mv_07

卒業生インタビュー

2021.10.13

【卒業生の声:ツヅクさん】不動産からIT業界へ。業務の電子化をきっかけに、エンジニアへの転職を決意しました

受講スクール プログラマカレッジ 受講期間 昼間コース(2020年1月生) 料金 無料 就職先 株式会社クリアス・テクノロジー プログラマカレッジ卒業生のツヅクさんにお話しをお伺いしました! 目次 職場でのシステムトラブ […]

続きを見る

無料相談する

INTERNOUS,inc. All rights reserved.