我希望你能帮助我,我有一个带有一些过滤词的数组:
$dang=array('foo','bar','baz','qux');
用户可以写一个文本,我在一个变量中得到它:
$answ=$_GET[answ];
如果用户写的文字如下:“我喜欢这个歌舞表演,那就太棒了。”,我想打印一下:
Found: bar
我在Find first occurance of array value in a string
找到了这个功能$firstMatch = array_shift(array_intersect(str_word_count(strtolower($answ), 1), $dang));
它很有效,遗憾的是它只能找到单词(用空格分隔的文本)。
有什么方法可以全文吗?
答案 0 :(得分:2)
您可以使用foreach()
循环数组并使用strpos()
检查字符串中是否存在该值:
$string = "Hello world";
foreach ( $dang as $dong ) {
if ( strpos($string, $dong) !== false ) {
echo "Found: ".$dong;
}
}
如果没有找到针, strpos()
会返回false
,否则大海中的针头开始位置(0是第一个字符)