文字列に配列内の単語が含まれているかどうかを確認する [重複] 質問する

文字列に配列内の単語が含まれているかどうかを確認する [重複] 質問する

これはチャット ページ用です。 があります$string = "This dude is a mothertrucker"。 悪い単語の配列があります: 。に の単語が含まれている$bads = array('truck', 'shot', etc)かどうかを確認するにはどうすればよいですか?これまでのところ、次のとおりです。$string$bad

        foreach ($bads as $bad) {
        if (strpos($string,$bad) !== false) {
            //say NO!
        }
        else {
            // YES!            }
        }

ただし、これを実行すると、ユーザーがリスト内の単語を入力すると$bads、出力は NO! に続いて YES! となり、何らかの理由でコードが 2 回実行されることになります。

ベストアンサー1

function contains($str, array $arr)
{
    foreach($arr as $a) {
        if (stripos($str,$a) !== false) return true;
    }
    return false;
}

おすすめ記事