array_search - 配列から指定した値を検索する
array_searchは、配列の中から指定した値を検索する関数です。見つかった場合はキーを返します。複数見つかった場合は一番の先頭側のキーを返します。
構文
パラメータ
$needle
検索する値。
$haystack
対象の配列。
$strict
厳密に比較をするか否か。
返り値
mixed
見つかった場合は一番先頭側のキー、見つからなかった場合はfalseが返る。
サンプルコード
<?php
$array = [ "a", "b", "c", "a", "b", "c" ] ;
$response = array_search( "b", $array ) ;
デモ
値を検索する
配列の中から値を検索し、最初に見つかった値のキーを返します。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c", "a", "b", "c" ] ;
$response = array_search( "b", $array ) ;
var_dump( $response ) ;
0の返り値に注意
「見つかったら〜をする」という処理をする場合、if( $result ) {...}という条件では不具合が起きます。見つかった場合の返り値(キー)が0の場合があるからです。if($result !== false) {...}としなければいけません。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c" ] ;
$response = array_search( "a", $array ) ;
if ( $response !== false ) {
echo "インデックス番号" . $response . "に値がありました。" ;
}
曖昧な比較
デフォルトでは、検索時の比較が曖昧です。例えば数値の1と文字列の"1"は同じと判定されます。
<?php
/*** このコードは編集できます。 ***/
$array = [ "1", 1 ] ;
$response = array_search( 1, $array ) ;
var_dump( $response ) ;
厳密な比較
第3引数にtrueを指定すれば、型を含めた厳密な比較を行ないます。
<?php
/*** このコードは編集できます。 ***/
$array = [ "1", 1 ] ;
$response = array_search( 1, $array, true ) ;
var_dump( $response ) ;
参考
- PHP: array_search
- PHPの公式リファレンス。
関連記事
- array_keys
- 配列のキーの一覧を取得する。
- usort
- ユーザー定義のアルゴリズムで、配列を値でソートする。