今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 簡単なPHPスクリプトを動かしてみよう
  3. ファイルから1行ずつ読み込む - fgets()
  4. ユニークなファイル名の一時ファイルを作成 - tempnam()
  5. ヒアドキュメント

配列 共通する値を持つ要素を取得 - array_intersect()、array_intersect_assoc()

当ページのリンクには広告が含まれています。

プログラミング言語PHPで、指定した配列と他の配列の値を比較し、共通する値を持つ要素を取得する関数 array_intersect()、値に加えて、キーも確認する array_intersect_assoc()を紹介します。

array_intersect関数

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
指定した複数の配列の値を比較し、共通する値を持つ要素を取得します。
後述のarray_intersect_assoc関数は、キーも確認します。
引数
$array1
比較元の配列を指定します。
$array2[, ...]
比較する配列を指定します。
返り値
$array1と$array2[, ...]に共通する値を持つ要素を配列で返します。
返される配列キーは保存されます。

サンプルコード

指定した複数の配列(ここでは、配列1と配列2の2つ)の値を比較し、共通する値を持つ要素を取得するサンプルコードです。

array_intersect( 配列1, 配列2 )
<?php
/* 配列を定義 */
$a = array('Debian', 'Ubuntu', 'CentOS', 'Fedora');
$b = array('Debian', 'Ubuntu', 'CentOS', 'RedHat');

/* 配列を比較 */
print_r( array_intersect($a, $b) );
?>

実行結果です。
配列1($a)と配列2($b)に共通する値を持つ配列要素(ここでは、Debian,Ubuntu,CentOS)が配列で返されます。

Array
(
    [0] => Debian
    [1] => Ubuntu
    [2] => CentOS
)

array_intersect_assoc関数

array array_intersect_assoc ( array $array1 , array $array2 [, array $ ... ] )
指定した複数の配列の値・キーを比較し、共通する値・キーを持つ要素を取得します。
引数
$array1
比較元の配列を指定します。
$array2[, ...]
比較する配列を指定します。
返り値
$array1と$array2[, ...]に共通する値・キーを持つ要素を配列で返します。
返される配列キーは保存されます。

サンプルコード

指定した複数の配列(ここでは、配列1と配列2の2つ)の値を比較し、共通する値・キーを持つ要素を取得するサンプルコードです。

array_intersect_assoc( 配列1, 配列2 )
<?php
/* 配列を定義 */
$a = array('Debian', 'a'=>'Ubuntu', 'b'=>'CentOS', 'Fedora');
$b = array('Debian', 'a'=>'Ubuntu', 'c'=>'CentOS', 'RedHat');

/* 配列を比較 */
print_r( array_intersect_assoc($a, $b) );
?>

実行結果です。
配列1($a)と配列2($b)に共通する値・キーを持つ配列要素(ここでは、Debian,Ubuntu)が配列で返されます。

Array
(
    [0] => Debian
    [a] => Ubuntu
)

配列 の人気記事

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

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