配列の中に特定の値が含まれているかを調べる方法です。
「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を指定する記述もちゃんと覚えておきましょう。