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 -> 搜索词包含特殊字符的搜索数组的主要内容,如果未能解决你的问题,请参考以下文章

PHP preg_grep 错误?

在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符

PHP 数组包含 0/

如何使用 preg_grep 查找 url

简单的PHP搜索,带有整词提取和突出显示的搜索词

PHP 简单的PHP搜索,包括全字提取和突出显示的搜索词