カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

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

この記事は最終更新日から1年以上経過しています。

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

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

書式

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

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

パラメータ

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

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

例)

1<?php
2$array1 = array("a" => "green", "red", "blue");
3$array2 = array("b" => "green", "yellow", "red");
4$result = array_intersect($array1, $array2);
5print_r($result);
6?>

出力結果

1Array
2(
3    [a] => green
4    [0] => red
5)

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

書式

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

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

パラメータ

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

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

例)

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

出力結果

1Array
2(
3    [blue] => 1
4    [green] => 3
5)

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

書式

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

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

パラメータ

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

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

例)

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

出力結果

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

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

この記事がお役に立ちましたらシェアお願いします
2,210 views

コメントを残す

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