-1

私は単語で満たされた配列を持っています:

$words = array("word", "word2", "apple", "cake");

次に、この配列を関数で使用して、単語が文字列 ($text) に存在するかどうかを確認します...

function find_word($text) {
    $words = array("word", "word2", "apple", "cake");
}

...しかし、関数が単語が存在するかどうかのチェックを停止し、配列内の単語の 1 つが文字列 ($text) 内に最初に出現した後にtrueを返すようにします。(したがって、関数は文字列に対してすべての単語をチェックする必要はありません。)単語が見つからない場合は、false を返すようにします。

いくつかのメソッドを検索してみましたが、見つけることができたのは を使用するメソッドだけでしたがpreg_match、配列内のすべての単語を文字列に対してチェックしたため、スクリプトの速度が低下したと思います。

これを達成するための最良の方法は何ですか?

注:配列内の単語の 1 つが単語内にある場合でも、この関数が true を返すようにします。例:がそこにあるblahAPPLErandomため、true を返す必要appleがあります。

4

2 に答える 2

1
for ($i = 0; $i < count($words); $i++)
    if (stripos($text, $words[$i]) !== false)
        return true;
于 2013-09-01T14:14:57.710 に答える
0

stristr PHP関数を使用するのはどうですか?

function find_word($text) {
    $words = array("word", "word2", "apple", "cake");
    foreach ($words as $w) {
        if (stristr($text, $w)) return True;
    }
    return False;
}
于 2013-09-01T14:20:26.890 に答える