in_array 大数据处理慢

PHP函数 in_array() 大数据处理慢,大家有啥好的优化方案

阅读 1.9k
2 个回答

array_flip反转 数组key与value,通过isset判断key是否存在于数组中

先思考一下为什么会出现这么大量的数据在数组中,并且能够大到出现处理慢的地步。
正常业务不会有这么大量的数据的。如果能够从业务上配合优化那便是最好的。从代码上相对于 in_array 应该没有什么好优化的了。

优化点:

  1. 就是利用大内存+hash数组,直接判断是否存在key,这是最快的。
  2. 利用可以并发的语言。拆分数组进行并发查找。例如:go
  3. 从业务上优化解决。例如数据是入好库的,那么通过mysql查询语句就可以查出来。

楼上说利用 array_flip 反转, array_flip 反转的时候,都是完整的循环了一次了吧。如果 需要查找内容在数组中比较靠前。in_array 会更快。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题