首先声明一下,我需要的是in_array PHP函数的逆向
我需要搜索字符串中数组的所有项,如果找到任何项,函数将返回 true,否则返回 false。
我需要这个问题的最快解决方案,当然这可以通过迭代数组和使用 strpos 函数来成功。
欢迎提出任何建议。
示例数据:
$string = 'Alice goes to school every day';
$searchWords = array('basket','school','tree');
返回真
$string = 'Alice goes to school every day';
$searchWords = array('basket','cat','tree');
返回假
最佳答案
您应该尝试使用 preg_match:
if (preg_match('/' . implode('|', $searchWords) . '/', $string)) return true;
在这里发表一些评论后,一个正确转义的解决方案:
function contains($string, Array $search, $caseInsensitive = false) {
$exp = '/'
. implode('|', array_map('preg_quote', $search))
. ($caseInsensitive ? '/i' : '/');
return preg_match($exp, $string) ? true : false;
}
关于php - 如何在 PHP 中搜索另一个字符串中的字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228581/