在找到第一个单词后,PHP在函数中返回true

时间:2013-09-01 14:12:37

标签: php regex arrays string search

我有一个充满单词的数组:

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

然后我想在一个函数中使用这个数组,该函数将检查字符串($ text)中是否存在单词,如此...

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

...但是我希望函数停止检查单词是否存在并在第一次出现数组中的一个单词后返回 true ,在字符串($ text)中。 (因此该函数不必检查字符串中的每个单词。)如果找不到该单词,那么我希望它返回false。

我已经尝试过搜索一些方法了,我能找到的唯一的东西是使用preg_match的方法,但他们检查了数组中的每个单词对着字符串,我认为这会慢脚本向下。

实现这一目标的最佳方法是什么?

注意:我希望这个函数返回true,即使数组中的一个单词在单词中也是如此。例如:blahAPPLErandom应该返回true,因为apple就在那里。

2 个答案:

答案 0 :(得分:1)

for ($i = 0; $i < count($words); $i++)
    if (stripos($text, $words[$i]) !== false)
        return true;

答案 1 :(得分: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;
}