配列に特定の文字が含まれるかどうかを判定する際の方法について記します。
いくつか方法がありますが、array_searchを使った方法を紹介します。
array_search
array_search — 指定した値を配列で検索し、見つかった場合に対応する最初のキーを返す
array_search(mixed $needle, array $haystack, bool $strict = false): int | string | false
第一パラメータに検索したい文字、第二パラメータに検索したい配列を入れます。
第三パラメータに関してはPHPマニュアルをご覧ください。
使用例
早速使用例を見ていきましょう。
以下に簡単な例を示します。
// 配列
$arr = ['りんご', 'みかん', 'なし', 'ぶどう'];
// 検索文字
$target_str = 'りんご';
// 結果
print('【配列】<br>');
print_r($arr);
print('<br>【検索文字列】<br>'.$target_str.'<br>');
print('【結果】<br>');
if (array_search($target_str, $arr) !== false) {
print("配列内に{$target_str}が存在します。");
} else {
print("配列内に{$target_str}が存在しません。");
}
$arrという配列の中に「りんご」という文字列が存在するかを確認しています。
今回は存在の有無の確認目的なので===演算子を使用しています。
返値に関してPHPマニュアルで以下の説明があります。
PHPマニュアル
警告
この関数は論理値 false を返す可能性がありますが、false として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。
結果は以下のようになりました。
【配列】
Array ( [0] => りんご [1] => みかん [2] => なし [3] => ぶどう )
【検索文字列】
りんご
【結果】
配列内にりんごが存在します。