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 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
php xml文件操作实现代码(二)
Mar 20 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
php json与xml序列化/反序列化
Oct 28 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php实现微信支付之退款功能
2018/05/30 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python pass详细介绍及实例代码
2016/11/24 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python实现简单银行管理系统
2019/10/25 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
回门宴父母答谢词
2014/01/26 职场文书
亮化工程实施方案
2014/03/17 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
男方婚前保证书
2015/02/28 职场文书
工作时间调整通知
2015/04/24 职场文书
趣味运动会简讯
2015/07/20 职场文书
2016教师节感恩话语
2015/12/09 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis