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 09 PHP
php 引用(&amp;)详解
Nov 20 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
php 操作调试的方法
Jul 12 PHP
php 发送带附件邮件示例
Jan 23 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 PHP
laravel 解决路由除了根目录其他都404的问题
Oct 18 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php实现的RSS生成类实例
2015/04/23 PHP
前端必学之PHP语法基础
2016/01/01 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
laravel请求参数校验方法
2019/10/10 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
Python常用模块介绍
2014/11/21 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
python爬虫超时的处理的实例
2018/12/19 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
python 自动批量打开网页的示例
2019/02/21 Python
Python对象转换为json的方法步骤
2019/04/25 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
秋游活动策划方案
2014/02/16 职场文书
手机被没收检讨书
2014/02/22 职场文书
视光学专业自荐信
2014/06/24 职场文书
教师求职信怎么写
2015/03/20 职场文书
老乡会致辞
2015/07/28 职场文书
比较几种Redis集群方案
2021/06/21 Redis