配列 異なる値を持つ要素を取得 - array_diff()、array_diff_assoc()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、指定した配列と他の配列の値を比較し、異なる値を持つ要素を取得する関数 array_diff()、値に加えて、キーも確認する array_diff_assoc()を紹介します。
array_diff関数
array array_diff ( array $array1 , array $array2 [, array $... ] )
指定した複数の配列の値を比較し、異なる値を持つ要素を取得します。
後述のarray_diff_assoc関数は、キーも確認します。
引数 $array1 比較元の配列を指定します。 $array2[, ...] 比較する配列を指定します。
返り値
$array1にあって、$array2[, ...]にない要素を配列で返します。
返される配列キーは維持されます。
サンプルコード
指定した複数の配列(ここでは、配列1と配列2の2つ)の値を比較し、異なる値を持つ要素を取得し、配列1にあって、配列2にない要素を取得するサンプルコードです。
array_diff( 配列1, 配列2 )
<?php /* 配列を定義 */ $a = array('Debian', 'Ubuntu', 'CentOS', 'Fedora'); $b = array('Debian', 'Ubuntu', 'CentOS', 'RedHat'); /* 配列を比較 */ print_r( array_diff($a, $b) ); ?>
実行結果です。
配列1($a)にあって、配列2($b)にない要素の値(ここでは、Fedora)が配列で返されます。
Array ( [3] => Fedora )
array_diff_assoc関数
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
指定した複数の配列の値・キーを比較し、異なる値・キーを持つ要素を取得します。
引数 $array1 比較元の配列を指定します。 $array2[, ...] 比較する配列を指定します。
返り値
$array1にあって、$array2[, ...]にない要素を配列で返します。
返される配列キーは保存されます。
サンプルコード
指定した複数の配列(ここでは、配列1と配列2の2つ)の値・キーを比較し、異なる値・キーを持つ要素を取得し、配列1にあって、配列2にない要素を取得するサンプルコードです。
array_diff_assoc( 配列1, 配列2 )
<?php /* 配列を定義 */ $a = array('Debian', 'Ubuntu', 'a'=>'CentOS', 'Fedora'); $b = array('Debian', 'Ubuntu', 'b'=>'CentOS', 'RedHat'); /* 配列を比較 */ print_r( array_diff_assoc($a, $b) ); ?>
実行結果です。
キーが異なる要素と値が異なる要素が配列で返されます。
Array ( [a] => CentOS [2] => Fedora )