SYNCERのロゴ
アイキャッチ画像

array_search - 配列から指定した値を検索する

array_searchは、配列の中から指定した値を検索する関数です。見つかった場合はキーを返します。複数見つかった場合は一番の先頭側のキーを返します。

構文

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

パラメータ

$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 ) ;
int(1)

0の返り値に注意

「見つかったら〜をする」という処理をする場合、if( $result ) {...}という条件では不具合が起きます。見つかった場合の返り値(キー)が0の場合があるからです。if($result !== false) {...}としなければいけません。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "a", "b", "c" ] ;

	$response = array_search( "a", $array ) ;

	if ( $response !== false ) {
		echo "インデックス番号" . $response . "に値がありました。" ;
	}
インデックス番号0に値がありました。

曖昧な比較

デフォルトでは、検索時の比較が曖昧です。例えば数値の1と文字列の"1"は同じと判定されます。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "1", 1 ] ;

	$response = array_search( 1, $array ) ;

	var_dump( $response ) ;
int(0)

厳密な比較

第3引数にtrueを指定すれば、型を含めた厳密な比較を行ないます。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "1", 1 ] ;

	$response = array_search( 1, $array, true ) ;

	var_dump( $response ) ;
int(1)
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月25日 (日)
コンテンツを公開しました。