SYNCER

SYNCER

in_array() - 配列が指定した値を含むかチェックする

公開日:

in_arrayは、ある配列が、指定した値を持っているか否かを確認する関数です。デフォルトでは型を考慮しない$a==$bの比較ですが、第3引数を指定すれば$a===$bの厳密な比較にできます。

構文

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

パラメータ

$needle

値。

$haystack

対象の配列。

$strict

初期値: FALSE

比較方法を厳密にするか。通常は$a==$bで型を考慮しないが、trueを指定することで、$a===$bの厳密な比較にできる。

返り値

bool

配列が指定した値を含んでいた場合はtrue、含んでいなかった場合はfalse

サンプルコード

指定した値があるか確認する

配列が指定した値を含んでいるか否かを確認します。

php

<?php
	// 配列
	$queue = [ "a", "b", "c", "d", "e" ] ;

	// 実行
	$result = in_array( "d", $queue ) ;

	// 返り値
	var_dump( $result ) ;

結果 (出力内容) - PHP7.0.21

bool(true)

型が考慮されない

デフォルトでは値の型を考慮せずに比較されます。そのため、例えばtrue"1"は同じものとして扱われます。結果、下記の返り値はtrueです。

php

<?php
	// 配列
	$queue = [ true, false ] ;

	// 実行
	$result = in_array( "1", $queue ) ;

	// 返り値
	var_dump( $result ) ;

結果 (出力内容) - PHP7.0.21

bool(true)

厳密に比較をする

第3引数にtrueを指定することで、型を考慮した厳密な比較ができます。今度は結果がfalseになりました。

php

<?php
	// 配列
	$queue = [ true, false ] ;

	// 実行
	$result = in_array( "1", $queue, true ) ;

	// 返り値
	var_dump( $result ) ;

結果 (出力内容) - PHP7.0.21

bool(false)

サンドボックス

ソースコードを編集してin_array()の挙動を確認して下さい。

bool(true)

参考リンク

  • PHP - 公式マニュアル。