2016年8月31日水曜日

in_arrayで配列がなくてエラーが出るときに対処。配列の中に特定の文字があるか調べるときにin_arrayを使った場合。


in_array — 配列に値があるかチェックする関数です。

$arr = array("a" => "1","b" => "2","c" => "3");

こんな感じの配列(連想配列)があって、

if (in_array("1", $arr)) {
    echo "ok";
}

もし1があったら実行するって感じですね。

普通の配列
$arr = array("1" ,"2" ,"3");
でも使えます。

array_key_exists()を使おうとおもったら、添字部分には使えなかったです。
(使えるのかもしれませんが、出来なかったので・・・)

しかし、このin_arrayですが、$arrの配列が入っていないとエラーが出ます。
フォームから受け取るときに空ってこともありえるので、空のときにエラーは困ります。

三番目のパラメータにtrueを入れて「真の場合」って条件にすれば、空でもエラーが出ないので、とりあえずこれでOKとしました。

in_array("1", $arr, ture)

ですね。