array_search() - 配列から指定した値を検索する
公開日:
array_search
は、配列の中から指定した値を検索する関数です。見つかった場合はキーを返します。複数見つかった場合は一番の先頭側のキーを返します。
構文
パラメータ
$needle
検索する値。
$haystack
対象の配列。
$strict
初期値: false
厳密に比較をするか否か。
返り値
mixed
見つかった場合は一番先頭側のキー、見つからなかった場合はfalse
が返る。
サンプルコード
値を検索する
配列の中から値を検索し、最初に見つかった値のキーを返します。
php
<?php
// 配列
$queue = [ "a", "b", "c", "a", "b", "c" ] ;
// 実行
$result = array_search( "b", $queue ) ;
// 返り値
var_dump( $result ) ;
結果 (出力内容) - PHP7.0.21
int(1)
0の返り値に注意
「見つかったら〜をする」という処理をする場合、if( $result ) {...}
という条件では不具合が起きます。見つかった場合の返り値(キー)が0
の場合があるからです。if($result !== false) {...}
としなければいけません。
php
<?php
// 配列
$queue = [ "a", "b", "c" ] ;
// 実行
$result = array_search( "a", $queue ) ;
// 見つかった場合
if ( $result !== false ) {
echo "キー番号の" . $result . "で値が見つかりました。" ;
}
結果 (出力内容) - PHP7.0.21
キー番号の0で値が見つかりました。
曖昧な比較
デフォルトでは、検索時の比較が曖昧です。例えば数値の1
と文字列の"1"
は同じと判定されます。
php
<?php
// 配列
$queue = [ "1", 1 ] ;
// 実行
$result = array_search( 1, $queue ) ;
// 見つかった場合
var_dump( $result ) ;
結果 (出力内容) - PHP7.0.21
int(0)
厳密な比較
第3引数にtrue
を指定すれば、型を含めた厳密な比較を行ないます。
php
<?php
// 配列
$queue = [ "1", 1 ] ;
// 実行
$result = array_search( 1, $queue, true ) ;
// 見つかった場合
var_dump( $result ) ;
結果 (出力内容) - PHP7.0.21
int(1)
サンドボックス
ソースコードを編集してarray_search()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。