Categories
SugiBlog ホームページ制作・システム開発|大阪

配列の共通項を計算する – array_intersect [PHP]

複数の配列から共通するキーや値を検索する関数をご紹介。

配列の共通項を計算する – array_intersect

書式

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

配列の共通する値のキーと値が配列で返されます。
キーと値の関係は、もとの配列の組み合わせが維持されます。

パラメータ

array1 //値を調べるもとの配列
array2 //値を比較する対象とする配列
array  //さらに比較するそれ以外の配列

返り値
array1 の値のうち、 すべての引数に存在する値のものを含む連想配列を返します。

例)

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
?>

出力結果

Array
(
    [a] => green
    [0] => red
)

キーを基準にして配列の共通項を計算する – array_intersect_key

書式

array array_intersect_key ( array $array1 , array $array2 [, array $ ... ] )

配列の共通するキーと、もとの配列よりその値が配列で返されます。

パラメータ

array1 //値を調べるもとの配列
array2 //値を比較する対象とする配列
array  //さらに比較するそれ以外の配列

返り値
array1 のエントリのうち、 すべての引数に存在するキーのものを含む連想配列を返します。

例)

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
$result = array_intersect_key($array1, $array2);
print_r($result);
?>

出力結果

Array
(
    [blue] => 1
    [green] => 3
)

追加された添字の確認も含めて配列の共通項を確認する – array_intersect_assoc

書式

array array_intersect_assoc ( array $array1 , array $array2 [, array $ ... ] )

配列のキー、及び値が共通するものを配列で返します。

パラメータ

array1 //値を調べるもとの配列
array2 //値を比較する対象とする配列
array  //さらに比較するそれ以外の配列

返り値
array1 の値のうち、すべての引数に存在するものを含む連想配列を返します。

例)

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

出力結果

Array
(
    [a] => green
)

配列から要素を削除する場合はこちら
配列の差分を求める – array_diff [PHP]

その他、詳しくは公式マニュアルをご覧ください。
PHP: 配列 関数 – Manual

850 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です