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

时间:2016-07-27 14:48:04

标签: php arrays find

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

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

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

$answ=$_GET[answ];

如果用户写的文字如下:“我喜欢这个歌舞表演,那就太棒了。”,我想打印一下:

Found: bar
“bar”在“cabaret”中找到,(仅限第一次发生)。

我在Find first occurance of array value in a string

找到了这个功能
$firstMatch = array_shift(array_intersect(str_word_count(strtolower($answ), 1), $dang));

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

有什么方法可以全文吗?

1 个答案:

答案 0 :(得分:2)

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

$string = "Hello world";

foreach ( $dang as $dong ) {
    if ( strpos($string, $dong) !== false ) {
        echo "Found: ".$dong; 
    }
}
如果没有找到针,

strpos()会返回false,否则大海中的针头开始位置(0是第一个字符)