PHP查找字符串中的任何数组值并显示找到的值


PHP Find any array value in a string and show the found value

我希望你能帮助我,我有一个带有一些过滤词的数组:

$dang=array('foo','bar','baz','qux');

用户可以写一个文本,我在一个变量中得到它:

$answ=$_GET[answ];

如果用户写了一段文字,比如:"我喜欢这个卡巴莱,它太棒了。",我想打印这个:

Found: bar

"酒吧"出现在"卡巴莱"中(仅限首次出现)。

我在这里找到了这个函数在字符串中查找数组值的第一次出现

$firstMatch = array_shift(array_intersect(str_word_count(strtolower($answ), 1), $dang));

它是有效的,遗憾的是,它只找到单词(用空格分隔的文本)。

有什么方法可以做全文吗?

您可以使用foreach()循环数组,并使用strpos()检查字符串中是否存在值:

$string = "Hello world";
foreach ( $dang as $dong ) {
    if ( strpos($string, $dong) !== false ) {
        echo "Found: ".$dong; 
    }
}

如果未找到指针,则strpos()返回false,否则指针在干草堆中的起始位置(0是第一个字符)