PHP 特定の要素が配列に含まれているかの判定の戻り値について

PHPで特定の要素が配列に含まれているかの判定を行う関数には主にarray_search,in_arrayがありますが、戻り値の型が異なるので注意が必要です。

array_search

基本構文

array_search(検索する値, 検索対象の配列, 型の比較を行うか)

第三引数にtrueを指定すると型の比較も行います。この引数に関しては省略可能です。

使い方

$array = ['aaa', 'bbb', 'ccc'];

$result = array_search('aaa', $array);
var_dump($result); // 0

$result = array_search('abc', $array);
var_dump($result); // bool(false)

この関数を使用した場合の戻り値は、

検索する値が配列にある場合:最初の値のインデックスキー
検索する値が配列にある場合:bool(false)

となります。

検索する値が配列にある場合はbool(true)ではなく、最初の値のインデックスキーが返されます。

in_array

基本構文

in_array(検索する値, 検索対象の配列, 型の比較を行うか)

第三引数にtrueを指定すると型の比較も行います。この引数に関しては省略可能です。

使い方

$array = ['aaa', 'bbb', 'ccc'];

$result1 = in_array('aaa', $array);
var_dump($result1); // bool(true)

$result2 = in_array('abc', $array);
var_dump($result2); // bool(false)

この関数を使用した場合の戻り値は、

検索する値が配列にある場合:bool(true)
検索する値が配列にある場合:bool(false)

となります。