php数组查找函数in_array()、array_search()、array_key_exists()使用实例


Posted in PHP onApril 29, 2014

php在数组中查找指定值是否存在的方法有很多,记得很久以前我一直都是傻傻的用foreach循环来查找的,下面我主要分享一下用php内置的三个数组函数来查找指定值是否存在于数组中,这三个数组分别是 in_array(),array_search(),array_key_exists()。

首先分别介绍一下各自的定义与作用

in_array(value,array,type)

该函数的作用是在数组array中搜索指定的value值,type是可选参数,如果设置该参数为 true ,则检查搜索的数据与数组的值的类型是否相同,即恒等于。

示例:

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
if(in_array("Glenn",$people)){
  echo "Match found";
}else{
  echo "Match not found";
}
?>

输出:

Match found

array_key_exists(key,array)

该函数是判断某个数组array中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。

示例:

<?php
$a=array("a"=>"Dog","b"=>"Cat");
if(array_key_exists("a",$a)){
 echo "Key exists!";
}else{
 echo "Key does not exist!";
}
?>

输出:

Key exists!

array_search(value,array,strict)

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,则返回匹配该元素所对应的键名。如果没找到,则返回 false。注意在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。同样如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

示例:

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>5,"d"=>"5");
echo array_search("Dog",$a);
echo array_search("5",$a);
?>

输出:

ad

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

PHP 相关文章推荐
php购物车实现代码
Oct 10 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
php二维数组转成字符串示例
Feb 17 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 #PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 #PHP
PHP include任意文件或URL介绍
Apr 29 #PHP
php调用google接口生成二维码示例
Apr 28 #PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 #PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 #PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 #PHP
You might like
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
实例讲解PHP表单处理
2019/02/15 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
python实现端口转发器的方法
2015/03/13 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
联想C++笔试题
2012/06/13 面试题
实习生个人的自我评价
2013/12/08 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
2014年化验室工作总结
2014/11/21 职场文书
人代会简报
2015/07/21 职场文书
儿子满月酒致辞
2015/07/29 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
2022年四月新番
2022/03/15 日漫