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 相关文章推荐
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
二招解决php乱码问题
Mar 25 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 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的ASP防火墙
2006/10/09 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
一些不错的js函数ajax
2008/08/20 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python构建网页爬虫原理分析
2017/12/19 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
销售经理工作职责范文
2013/12/03 职场文书
个性与发展自我评价
2014/02/11 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP