如何在PHP数组中搜索,类似于MySQL Like%var%search

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何在PHP数组中搜索,类似于MySQL Like%var%search脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以像在 MySQL中一样在 PHP数组中进行搜索.

例如:我有这个阵列

array(
  'mark@test.COM'=> `Mark Mian`,'jhon@test.com'=> `John jack`,'logon@test.com'=> `Bob logon`,'Stela@test.com'=> `Stela Josh`,'json@test.com'=> `JSON Josh`
  'bobby@test.com'=> `Bob Mark`
)

我会做这种搜索,

例如:如果我搜索马克,它应该给我这个

如果我搜索Bob,它应该归还给我

如果我只搜索它,它应该返回那些包含例如:

注意:搜索应该是键或值

这是一个PReg_grep解决方案,应该更像MysqL中的WHERE REGExp’PATTERN’.我修改Daniel Klein’s preg_grep_keys function搜索数组键中的模式,并添加一个 array_merge,它应该与带有非数字键的数组一起使用.如果键是数字的,只需使用仅仅 preg_grep solution(preg_grep(‘~Mark~i’,$arr);来查找所有具有标记标记的数组元素等).
function preg_grep_keys_values($pattern,$input,$flags = 0) {
    return array_merge(
      array_intersect_key($input,array_flip(preg_grep($pattern,array_keys($input),$flags))),preg_grep($pattern,$flags)
   );
}

$a = array(
  'mark@test.by.com'=> "Mark Mian lv",'jhon@test.lv.com'=> "John jack lv",'logon@test.en.com'=> "Bob logon",'Stela@test.es.com'=> "Stela Josh",'json@test.es.com'=> "Json Josh",'bobby@test.lv.com'=> "Bob Mark"
);

$r = preg_grep_keys_values('~lv~i',$a);
print_r($r);

this IDEONE demo

上面的代码首先在键中搜索lv(不区分大小写),然后在值中搜索,然后将结果合并到1个数组中.因此,结果是:

[jhon@test.lv.com] => John jack lv
[bobby@test.lv.com] => Bob Mark
[mark@test.by.com] => Mark Mian lv

脚本宝典总结

以上是脚本宝典为你收集整理的如何在PHP数组中搜索,类似于MySQL Like%var%search全部内容,希望文章能够帮你解决如何在PHP数组中搜索,类似于MySQL Like%var%search所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。