今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列をファイルに書き込む - file_put_contents()
  3. ヒアドキュメント
  4. 論理値 - boolean
  5. OS情報を取得 - php_uname()

配列 異なる値を持つ要素を取得 - 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
)

配列 の人気記事

  1. 配列の値に数値インデックスを付ける - array_values()
  2. 配列のキーを大文字 / 小文字に変更 - array_change_key_case()
  3. 配列の要素を逆順に - array_reverse()
  4. 配列の要素をシャッフル - shuffle()

関連記事(一部広告含む)