如何在PHP中搜索另一个字符串中的字符串数组?

Umu*_*GÖZ 5 php arrays string

首先,我想告诉我,我需要的是in_array PHP函数的反向.

我需要搜索字符串中的所有数组项,如果发现其中任何一项,函数将返回true,否则返回false.

我需要这个问题的最快解决方案,当然这可以通过迭代数组并使用strpos函数来成功.

欢迎任何建议.

示例数据:

$string = 'Alice goes to school every day';

$searchWords = array('basket','school','tree');
Run Code Online (Sandbox Code Playgroud)

返回true

$string = 'Alice goes to school every day';

$searchWords = array('basket','cat','tree');
Run Code Online (Sandbox Code Playgroud)

返回false

mal*_*lko 10

你应该尝试使用preg_match:

if (preg_match('/' . implode('|', $searchWords) . '/', $string)) return true;
Run Code Online (Sandbox Code Playgroud)

经过一些评论后,一个正确的转义解决方案:

function contains($string, Array $search, $caseInsensitive = false) {
    $exp = '/'
        . implode('|', array_map('preg_quote', $search))
        . ($caseInsensitive ? '/i' : '/');
    return preg_match($exp, $string) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)

  • `$ searchWords`应该被正确转义 (3认同)