preg_match函数不适用于括号

时间:2016-01-30 21:12:57

标签: php preg-match

我正在尝试匹配包含以下内容的数组:

[title] => Something (12) Pieces
带有$item字符串的

还包含此函数的Something (12) Pieces

function in_array_r($item , $array){
    return preg_match('/"'. $item .'"/i' , json_encode($array));
}

但它并没有给我一个匹配,即使它们是相同的。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要做的是转义字符,这是RegEx特有的。要实现此目的,您可以使用preg_quote函数,但请注意,如果您没有通过使用的分隔符(在您的情况下preg_quote,分隔符不会被/转义。 1}})到第二个参数。

function in_array_r($item , $array){
    return preg_match('/"'. preg_quote($item, '/') .'"/i' , json_encode($array));
}

http://php.net/preg_quote https://3v4l.org/p9n43

答案 1 :(得分:0)

我认为您的方法是错误的,您只想将数组转换为JSON,以检查数组中是否存在值。这是浪费资源,特别是如果阵列很大的话。

另一种方式(在我看来似乎更合乎逻辑)包括使用循环遍历数组的递归函数:

$("#SecondDiv").show();