column

ITコラム

mv13303jpg

プログラミングノウハウ

2019.02.21

PHP【 配列 】要素を比較

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

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。

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

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>

PHP 配列 要素 比較 プログラマカレッジ

$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>

PHP 配列 要素 比較 プログラマカレッジ

$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

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ