in_array() - 配列が指定した値を含むかチェックする
公開日:
in_array
は、ある配列が、指定した値を持っているか否かを確認する関数です。デフォルトでは型を考慮しない$a==$b
の比較ですが、第3引数を指定すれば$a===$b
の厳密な比較にできます。
構文
パラメータ
$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()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。