【PHP】array_searchと変数の型

複数の文字列を入れた配列($arr)の中に、特定の文字列($keyword)が含まれているかをチェックするとします。

例えば、下記のような例、

// 配列に値を代入
$arr = array(‘aaa’, ‘bbb’, ‘ccc’);
$keyword = ‘aaa’;

if (!array_search($keyword, $arr)) {
	echo "FALSE";
}else{
	$val = array_search($keyword, $arr);
	echo $arr[$val];
}

配列の先頭の aaa を検索した場合、array_search の結果で FALSE が返ってきてしまいます。
array_search()は一致した文字列が含まれていた場合、配列のキーの値を返します。

今回の場合は、配列の最初なので0、if の条件判定で 0 = FALSE として扱われてしまうようです。

// 配列に値を代入
$arr = array(‘aaa’, ‘bbb’, ‘ccc’);
$keyword = ‘aaa’;

if (array_search($keyword, $arr) === FALSE) {
	echo "FALSE";
}else{
	$val = array_search($keyword, $arr);
	echo $arr[$val];
}

とすると解決します。
PHPは型指定をしなくていい分、こういったデメリットもあるようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>