配列に指定要素が含まれるか検索する定番の関数がin_array関数です。以下は配列に「田中次郎」が含まれるか検索しています。
<?php $array = array("鈴木一郎", "田中次郎", "高橋史郎"); if (in_array("田中次郎", $array)) { echo "存在します"; } ?>
○実行結果
存在します
in_array関数では検索する指定文字列に正規表現を使うことができません。正規表現を使って配列検索を行う場合はpreg_grep関数が役立ちます。
<?php $array = array("鈴木一郎", "田中次郎", "高橋史郎"); if (preg_grep("/^田中/", $array)) { echo "存在します"; } ?>
○実行結果
存在します
この例では「正規表現が使えるin_array関数」のイメージで配列要素の存在チェックのためにpreg_grep関数を使っていますが、preg_grep関数の戻り値はtrueまたはfalseのboolではなく、マッチした配列要素です。
<?php $array = array("鈴木一郎", "田中次郎", "高橋史郎"); print_r(preg_grep("/^田中/", $array)); ?>
次のように、マッチした要素が返されます。
○実行結果
Array ( [1] => 田中次郎 )