今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. エスケープシーケンス - 特殊文字
  3. 定数の基本構文

配列 異なる値を持つ要素を取得 - 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_reverse()
  2. 配列の値の出現回数をカウント - array_count_values関数
  3. 配列 異なる値を持つ要素を取得 - array_diff()、array_diff_assoc()
  4. 配列ポインタを先頭・最後に - reset()、end()
  5. 配列のキーをランダムに抽出 - array_rand()
  6. 2つの配列から連想配列を作成 - array_combine()
  7. PHP関数リファレンス

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