问答

php的in_array大数据量下太慢,如何优化?

作者:admin 2021-05-11 我要评论

in_array在100万的数组里查询,很慢。 如果使用了in_array的第三个参数:in_array(xx,xx,true),速度会快很多,但感觉还是达不到要求。 有没有更快的in_array方...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

in_array在100万的数组里查询,很慢。

如果使用了in_array的第三个参数:in_array(xx,xx,true),速度会快很多,但感觉还是达不到要求。

有没有更快的in_array方法?

###

刚好前两天查过,可以试试

array_fill_keys() + isset()

// 假设他有很多元素
$arr = [];
$search = '要搜索的值';
$arr2 = array_fill_keys($arr,null);
var_dump(isset($arr2[$search]));

或者 array_flip 。

// 假设他有很多元素
$arr = [];
$search = '要搜索的值';
$arr2 = array_flip($arr,null);
var_dump(isset($arr2[$search]));

相关
in_array vs array_flip+isset vs array_search

###

可以将数据存放在redis的集合中试试,不知道能不能解决你的问题。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • php的in_array大数据量下太慢,如何优

    php的in_array大数据量下太慢,如何优

  • Angular 11.x AbstractControl valueCh

    Angular 11.x AbstractControl valueCh

  • 如果chrome里的请求是这种状态是什么原

    如果chrome里的请求是这种状态是什么原

  • docker集群问题

    docker集群问题

腾讯云代理商
海外云服务器