PHP数组搜索in

php在数组中查找指定值是否存在的方法有很多,在不了解的情况下我们通常会用foreach循环的方式来查找,但是这样的方法效率太差了,今天简单介绍三种PHP内置数组相关的搜索函数。

分别是函数in_array()、array_search()、array_key_exists()。

1.in_array(search,array,type)

in_array() 函数搜索数组中是否存在指定的值。

如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

2.array_search(value,array,strict)

array_search() 函数在数组中搜索某个键值,并返回对应的键名。

"red","b"=>"green","c"=>"blue");echo array_search("red",$a);?>

3.array_key_exists(key,array)

array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。

"XC90","BMW"=>"X5");if (key_exists("Toyota",$a)) { echo "键存在!"; }else { echo "键不存在!"; }?>

经过实际性能对比,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为性能上的瓶颈。但当数据量比较大的时候,用 array_key_exists 比较合适。据测试 array_key_exist 要比 in_array 效率高十几甚至几十倍。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181106G1TYAB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券