PHP preg_grep -> 搜索词包含特殊字符的搜索数组
Posted
技术标签:
【中文标题】PHP preg_grep -> 搜索词包含特殊字符的搜索数组【英文标题】:PHP preg_grep -> search array where search term contains special character 【发布时间】:2016-02-22 23:13:52 【问题描述】:尝试搜索包含特殊字符的数组:
$array=array("0|0Name"=>"first name","0|1last"=>"last name","1|0email"=>"email address");
试过
$v="0|0";
print_r(preg_grep("/^".$v.".*/",$array)); --->FAIL
试过了:
$v=str_replace("|","\|","0|0");
print_r(preg_grep("/^".$v.".*/",$array)); --->FAIL
【问题讨论】:
你要返回什么? 一个数组,其中包含引用 $array 的键。 【参考方案1】:使用preg_quote()
,它将转义特殊字符,考虑到分隔符(在您的情况下为/
):
$v = preg_quote("0|0", "/");
print_r(preg_grep("/^".$v.".*/",$array));
【讨论】:
就是这样!谢谢。还发现我需要将 $array 更改为 array_keys($array) 才能真正找到任何东西:)以上是关于PHP preg_grep -> 搜索词包含特殊字符的搜索数组的主要内容,如果未能解决你的问题,请参考以下文章