• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

in_array和array_keys哪个效率更快

php 搞代码 4年前 (2022-01-23) 11次浏览 已收录 0个评论
文章目录[隐藏]

判断一个百万级别的数值数组中是否存在对应的值,如题.求教!

回复讨论(解决方案)

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

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。

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

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。

key哪里来的重复值???

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的值。

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

哈哈哈 你太搞了…

in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值
后者可以有重复值的吧,返回一个数组,我做过测试可以有相同的来4源gaodaimacom搞#代%码*网搞代gaodaima码值。

你试试,可以的话向官网报bug
这个是真可以的,我昨天刚测试过,这个数组如果不是键值数组的话返回的是数值数组的索引,而且该函数返回的是一个数组,如果不可能又重复值那么只有一个值的话为什么要返回一个数组呢?

它的第二个参数是可选择的,如果空着会返回所有键名组成的数组。如果指定,如你的需求,它只会返回对应的一个键名。

楼主,你的需求,使用这个方法解决是否合适?

楼主,你的需求,使用这个方法解决是否合适?
我也觉得不合适,不过暂时没想到更合适的方法.

你做什么业务啊,全放到数组中,占用内存,还不如在数据库中捞取你要的

1楼大神说的是对的
in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

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

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

1楼大神说的是对的
in_array 是顺序查找
array_keys 是查哈希表
当然是后者快,但后者不可能有重复值

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

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

他这个可能是纯技术流方案 并不是实际应用解决方案 所以大家别太操心


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:in_array和array_keys哪个效率更快

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址