从字符串中的数组中搜索关键字(PHP)

时间:2017-01-30 11:29:44

标签: php arrays string search keyword

$array_keywords = ('red','blue','green');
$string = "Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad";

(PHP)在字符串和打印重合中搜索关键字(来自数组),在这种情况下,所需的结果应该是" blue "。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用此:

$array_keywords = array('red','blue','green');

$string = 'Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad';

foreach ($array_keywords as $keys) {
    if (strpos($string, $keys)) {
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;

您还可以使用stristr()stripos()来检查不区分大小写。

或者您可以看到Lucanos answer

答案 1 :(得分:0)

检查此代码,

<?php
function strpos_array($haystack, $needles, &$str_return) {

    if ( is_array($needles) ) {
        foreach ($needles as $str) {
            if ( is_array($str) ) {
                $pos = strpos_array($haystack, $str);
            } else {
                $pos = strpos($haystack, $str);
            }

            if ($pos !== FALSE) {
                $str_return[] = $str;
            }
        }
    } else {
        return strpos($haystack, $needles);
    }
}

// Test
$str = [];
$array_keywords = ('red','blue','green');
$string = "Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad";

strpos_array($string, $array_keywords,$str_return); 
print_r($str_return);
?>

这是带有数组的高级strpos代码。

更精确的方法是,如果匹配多于单个元素,则获取数组。