PHP で search_array 関数を使用して 0 インデックスを検索し、それを true と評価することはできないようです。
たとえば、次のコードを検討してください。
$test=array(100, 101, 102, 103);
if($key=array_search(100,$test)){
echo $key;
}
else{
echo "Not found";
}
針 '100' は干し草の山で見つかり、キーは 0 として返されます。これまでのところは問題ありませんが、検索が成功したかどうかを評価すると、返された値が 0 (false に等しい) であるため失敗します。
PHP のマニュアルでは '!==' の使用が推奨されていますが、そうするとキー (配列インデックス) は返されず、代わりに 1 または 0 が返されます。
if($key=(array_search(103,$test)!== false)){
}
では、配列をうまく検索し、インデックス 0 で一致を見つけて、それを true と評価するにはどうすればよいでしょうか?