array_intersect() - 複数の配列の中の共通の値を確認する
公開日:
array_intersect
は、指定した全ての配列に含まれる共通の値を見つける関数です。比較は、(string)$a===(string)$b
で行われます。例えば、数値の1
と文字列の"1"
は同じになります。多次元配列の場合、一次元のみが比較されます。
構文
パラメータ
$array1
基本の配列。
$array2
比較対象となる配列。
$...
比較対象となる配列は1つだけじゃなく、第3引数以降で指定できる。
返り値
array
全ての配列に含まれる共通の値を集めた配列。返り値の配列は、第1引数に指定した配列の要素で構成される。
サンプルコード
共通の値を確認する
2つの配列で共通する値を確認します。
php
<?php
// 配列
$queue1 = [ "a", "b", "c" ] ;
$queue2 = [ "a", "b" ] ;
// 実行
$result = array_intersect( $queue1, $queue2 ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[0] => a
[1] => b
)
3つ以上の配列
第3引数以降を指定することで、3つ以上の配列から共通の値を確認できます。
php
<?php
// 配列
$queue1 = [ "a", "b", "c", "d", "e" ] ;
$queue2 = [ "a", "b" ] ;
$queue3 = [ "a", "c" ] ;
// 実行
$result = array_intersect( $queue1, $queue2, $queue3 ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[0] => a
)
キーは無視される
比較されるのは値だけです。キー名が違っても値が同じ場合は、共通の値と判定されます。その場合、返り値に含まれるのは第1引数に指定した配列の要素です。
php
<?php
// 配列
$queue1 = [
"a" => 1 ,
"b" => 2 ,
"c" => 3 ,
] ;
$queue2 = [
"d" => 1 ,
] ;
// 実行
$result = array_intersect( $queue1, $queue2 ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[a] => 1
)
サンドボックス
ソースコードを編集してarray_intersect()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。