作业帮 > 综合 > 作业

array_key_exists为什么比in_array快?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/04 09:51:33
array_key_exists为什么比in_array快?
百度面试,问我的,谁知道底层原因?
我知道的,in_array()这个中会有个数据类型转化的过程(即他的第三个参数应该设为true,效率会更好些),大循环时会影响效率.是不是本身他们两个的数据结构和算法就不一样,也影响效率?
array_key_exists为什么比in_array快?
array_key_exists 和 in_array 查询的东西都不一样吧
array_key_exists 判断是否有键值
array_key_exists(a,arr)->if(isset(arr[a]))就是true
而in_array 需要去遍历值 遍历到了才跳出循环
再问: 是不是数组的索引有单独的存储单元,而且优化过,array_key_exists的时间复杂度是o(1), 而in_array是o(n) ??
再答: 重复杂度来说是这样 array_key_exists 是判断某个键有没有值 in_array 要遍历一次 获取是否相同 不知道建的情况下必须遍历