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

标签 php arrays string

首先声明一下,我需要的是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/

相关文章:

python - 在 Python 中反转 C 风格格式字符串 (`%` )

python - 避免重复 str.format 的参数?

php - Mod_Rewrite 规则冲突让我发疯

java - 用数组制作图片

java - Unicode 代码字符串

java - Java中的结构化数组

arrays - 对于数百万个对象,如果实时需要,是存储在数组中好还是存储在像redis这样的数据库中好?

php - 来自数据库的浮点值不能正确显示 php

PHP/MySQL where 子句返回空值

php - 如何在不越狱的情况下在 iOS 上托管 PHP 脚本?