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中显示格式化的用户输入
Oct 09 PHP
一个分页的论坛
Oct 09 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
Session保存到数据库的php类分享
Oct 24 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
PHP两种快速排序算法实例
Feb 15 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP构造二叉树算法示例
Jun 21 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
thinkphp5实现微信扫码支付
Dec 23 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
jcrop基本参数一览
2013/07/16 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
python实现简易学生信息管理系统
2020/04/05 Python
QML使用Python的函数过程解析
2019/09/26 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python3.9新特性详解
2020/10/10 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
给老婆的搞笑检讨书
2014/01/12 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
JavaScript实现音乐播放器
2022/08/14 Javascript