今日の人気記事

  1. php.ini の設定
  2. PHP + OAuthで Twitter botをつくってみよう
  3. PHPスクリプト - 基本的な記述方法 - 書き方の基本
  4. 配列を文字列に変換 - implode()
  5. 乱数を生成 - mt_rand()

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

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