检查字符串以查看它是否包含数组,如果是,则将数组中的值输出到新变量中

时间:2015-10-06 15:56:30

标签: php arrays regex

我对PHP很新,并且很难理解最好的方法。我有一个数组:

$colours= array('Yellow', 'Red', 'Blue');

我现在需要检查这个数组的字符串,如果字符串中存在其中一种颜色,那么我们需要将结果输出到一个新变量中。这是一个示例字符串:

$string= "Black & Aztec Blue";

所以在这种情况下,所需的输出将是"蓝"。或者,如下所示,两个值都可以保存在第二个数组中?有没有人以前做过这样的事情?

所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

使用替换|创建匹配任何单词的正则表达式。

$regexp = '/\b(' . implode('|', $colours) . ')\b/'; // $regexp = '/\b(Yellow|Red|Blue)\b/'
if (preg_match($regexp, $string, $match)) {
    $found_word = $match[0];
}

\b匹配字边界,因此如果字符串与BlackBlue相邻,则不匹配。如果你想在这种情况下匹配颜色,请将它们拿出来。