in_array関数は指定した値が配列内に存在する場合はtrue、存在しない場合はfalseを返します。
第一引数に検索する値、第二引数に配列、第三引数に型比較するかをbool型(true/false)で指定します。第三引数の初期値はfalse(型比較しない)です。返り値はbool型(true/false)です。
in_array(検索する値, 配列, bool型);
同じ型の値の比較の場合、第三引数は指定せず初期値のままで問題ありません。
<?php
$items = array('トマト', 'キャベツ', 'ピーマン', 'レタス');
if(in_array('キャベツ', $items)) {
echo 'キャベツは配列内に存在します。';
}
?>
実行結果は以下になります。
キャベツは配列内に存在します。
型が異なる値の比較の場合、第三引数が初期値のfalseであれば型の比較をしません。結果、型が異なっていてもin_array関数はtrueを返します。
<?php
$items = array(0, 1, 2, 3);
if(in_array('3', $items)) {
echo '3は配列内に存在します。';
}
?>
実行結果は以下になります。
3は配列内に存在します。
型が異なる値の比較で型の比較までする場合は、第三引数にtrueを指定します。結果、型が異なるためin_array関数はfalseを返し、実行結果には何も表示されません。
<?php
$items = array(0, 1, 2, 3);
if(in_array('3', $items, true)) {
echo '3は配列内に存在します。';
}
?>
