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下使用iconv需要注意的问题
Nov 20 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
PHP的垃圾回收机制代码实例讲解
Feb 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面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
帝国cms常用标签汇总
2015/07/06 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
python 默认参数问题的陷阱
2016/02/29 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python函数的作用域及关键字详解
2019/08/20 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
Python 多进程原理及实现
2020/12/21 Python
python爬虫基础之urllib的使用
2020/12/31 Python
企业厂长岗位职责
2013/12/17 职场文书
健康家庭事迹材料
2014/05/02 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
常住证明范本
2015/06/23 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
2016年少先队活动总结
2016/04/06 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL