配列の中に特定の値が含まれているかを調べる方法です。
「in_array」を使用することで、配列の中に特定の値が含まれているかを調べることが出来ます。
in_array(探す値, 配列);
値が見つかった時にtrueを返します。
ifを使って下記のように使うことが多いのではないかと思います。
この場合、配列に2が含まれているので「配列に 2 が含まれています。」が表示されます。
<?php $x = 2; $array = array(1, 2, 3); if (in_array($x, $array)) { echo "配列に {$x} が含まれています。"; } else { echo "配列に {$x} は含まれていません。"; } ?>
データ型まで比較する
第3引数を指定しない場合はデータ型を比較しない == と同じ比較をしますが、第3引数をtrueにすることでデータ型まで比較する、=== と同じ比較を行います。
下記では変数xに文字列の”2″を代入していますので、最初の第3引数を指定しない場合はtrueが返ってきて、次の第3引数をtrueにしている場合はfalseが返ってきます。
<?php $x = "2"; // 文字列の "2" を代入します。 $array = array(1, 2, 3); if (in_array($x, $array)) { // 第3引数無しの場合、trueが返されますが、 echo "配列に {$x} が含まれています。<br>\n"; } else { echo "配列に {$x} は含まれていません。<br>\n"; } if (in_array($x, $array, true)) { // 第3引数をtrueにした場合、データ型まで比較されfalseが返されます echo "配列に {$x} が含まれています。<br>\n"; } else { echo "配列に {$x} は含まれていません。<br>\n"; } ?>
最後に…
第3引数を指定しない場合、 文字列の “2.0” と 整数の 2 を比べてもtrueを返してしまいますので、第3引数にtrueを指定する記述もちゃんと覚えておきましょう。