php判断数组元素中是否存在某个字符串的方法


Posted in PHP onJune 14, 2014

方法一:采用in_array(value,array,type)

type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

$arr = array('可以','如何','方法','知道','?]有','不要');
//in_array(value,array,type)
$isin = in_array("如何2",$arr);
if($isin){
    echo "in====".$isin;
}else{
    echo "out====".$isin;
}

方法二:

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

方法三:

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。array_search(value,array,strict),当数据量比较大的时候,用array_key_exists比较合适,但占用的内存比较大,

数组结构是: array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..),内存使用比值为1:2。
具体跟内部实现有关系,在php中第一种和第二种的数据结构类似,都是关联数组。

其它补充:

查找一个元素是否在数组中,一共有下面三种做法:

in_array  '函数在数组中搜索给定的值。in_array(value,array,type)type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
array_key_exists 'array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。

array_key_exists(key,array)

array_search 'array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。

array_search(value,array,strict)

从这里来看,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为瓶颈;
当数据量比较大的时候,用array_key_exists比较合适。
当然这里array_key_exists占用的内存比较大,经测算
数组结构是: array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..)
他们内存使用比值为1:2;
这个和内部实现有关系,实际上在php中第一种和第二种的数据结构类似,都是关联数组。

PHP 相关文章推荐
php网上商城购物车设计代码分享
Feb 15 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
apache和PHP如何整合在一起
Oct 12 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 #PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 #PHP
PHPAnalysis中文分词类详解
Jun 13 #PHP
ThinkPHP缓存方法S()概述
Jun 13 #PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 #PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 #PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 #PHP
You might like
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
js实现碰撞检测
2021/01/29 Javascript
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python实现图片识别加翻译功能
2019/12/26 Python
python爬虫工具例举说明
2020/11/30 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
国际商务英语专业求职信
2014/07/08 职场文书
运动会开幕式主持词
2015/07/01 职场文书
小学毕业感言200字
2015/07/30 职场文书
2015年教师节感言
2015/08/03 职场文书
旅行社计调工作总结
2015/08/12 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
MySQL日期时间函数知识汇总
2022/03/17 MySQL