SYNCER

SYNCER

array_intersect() - 複数の配列の中の共通の値を確認する

公開日:

array_intersectは、指定した全ての配列に含まれる共通の値を見つける関数です。比較は、(string)$a===(string)$bで行われます。例えば、数値の1と文字列の"1"は同じになります。多次元配列の場合、一次元のみが比較されます。

構文

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

パラメータ

$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()の挙動を確認して下さい。

Array
(
    [0] => a
    [1] => b
)

参考リンク

  • PHP - 公式マニュアル。