热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

in_array跟array_keys哪个效率更快

in_array和array_keys哪个效率更快判断一个百万级别的数值数组中是否存在对应的值,如题.求教!分享到:
in_array和array_keys哪个效率更快
判断一个百万级别的数值数组中是否存在对应的值,如题.求教!


------解决方案--------------------
in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
------解决方案--------------------
引用:
Quote: 引用:

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。


你试试,可以的话向官网报bug
------解决方案--------------------
引用:
Quote: 引用:

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。


key哪里来的重复值???
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。


你试试,可以的话向官网报bug



哈哈哈 你太搞了...
------解决方案--------------------
它的第二个参数是可选择的,如果空着会返回所有键名组成的数组。如果指定,如你的需求,它只会返回对应的一个键名。
------解决方案--------------------
楼主,你的需求,使用这个方法解决是否合适?
------解决方案--------------------
你做什么业务啊,全放到数组中,占用内存,还不如在数据库中捞取你要的
------解决方案--------------------
1楼大神说的是对的
in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

小菜补充一下,如果数组中有重复的键值,那么按键-值方式取时,得到的是最后的那个键对应的值,但是用array_keys取键时返回的是第一次出现的键。

另外,这么大的数据量的话完全可以放在memcache这样的nosql里了,速度够快,对你的需求也完全满足,get一下就知道是否存在了
------解决方案--------------------
引用:
1楼大神说的是对的
in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

小菜补充一下,如果数组中有重复的键值,那么按键-值方式取时,得到的是最后的那个键对应的值,但是用array_keys取键时返回的是第一次出现的键。

另外,这么大的数据量的话完全可以放在memcache这样的nosql里了,速度够快,对你的需求也完全满足,get一下就知道是否存在了


推荐阅读
author-avatar
执念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有