array_searchとは
指定した値を配列の中から検索し、見つかったら最初のキーを返す。
例えば、
$array = {'いちご','さくらんぼ','めろん'};
の場合、
$key = array_search('さくらんぼ', $array);
とすると
$key = 1
となる。
$key=0の場合
例えば、検索するワードをもつ配列の要素が存在する場合としない場合で条件分岐したいとき、
keyが0になる場合のことを考慮しなければならない。
keyが0の場合、
if($key)[
echo 'keyがあります';
}
if(!empty($key)){
echo 'keyがあります';
}
という書き方をするとfalse
になる
なぜならif($key)
は0
をfalse
、
empty($key)
は0
をtrue
とみなすため。
そのため、
if($key !== false){
echo 'keyがあります';
}
とする必要がある。
if($key != false){
echo 'keyがあります';
}
こうしてしまうと、データ型まで一致しているか検証してくれないので、
0
はfalse
とみなされる
== 値が同じ
=== 値とデータ型が同じ