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面向对象分析设计的经验原则
Sep 20 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
解析php如何将日志写进syslog
Jun 28 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 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文件上传实例详解!!!
2007/01/02 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
降低PHP Redis内存占用
2017/03/23 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
Python sys模块常用方法解析
2020/02/20 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
新法人代表任命书
2014/06/06 职场文书
捐款活动总结
2014/08/27 职场文书
毕业证代领委托书
2014/09/26 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
学校运动会感想
2015/08/10 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android