PHP の array_search() 関数(配列中から特定の値を見つける)ではまる。
$ary = array ( 'hoge');
if ( array_search("hoge", $ary) ) { echo "みつけたよ"; }
と言う処理をすると、何も表示されない。
理由は、array_search() の戻り値が「キー」だから。
上記 $ary は、実際は、
[0] => 'hoge'
として格納されているため、発見した場合の戻り値は "0" なので、if 文の条件式評価は FALSE と同じになってしまう。
これでしばらく分からなかった。
対応は、
if ( array_search("hoge", $ary) !== FALSE ) { echo "みつけたよ";}
とする。 型も含めてきちんと評価すれば良い。
$ary = array ( 'hoge');
if ( array_search("hoge", $ary) ) { echo "みつけたよ"; }
と言う処理をすると、何も表示されない。
理由は、array_search() の戻り値が「キー」だから。
上記 $ary は、実際は、
[0] => 'hoge'
として格納されているため、発見した場合の戻り値は "0" なので、if 文の条件式評価は FALSE と同じになってしまう。
これでしばらく分からなかった。
対応は、
if ( array_search("hoge", $ary) !== FALSE ) { echo "みつけたよ";}
とする。 型も含めてきちんと評価すれば良い。