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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
用PHP制作的意见反馈表源码
Mar 11 PHP
php的access操作类
Apr 09 PHP
php UTF8 文件的签名问题
Oct 30 PHP
fgetcvs在linux的问题
Jan 15 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PDO::commit讲解
Jan 27 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
SONY SRF-40W电路分析
2021/03/02 无线电
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
小谈php正则提取图片地址
2014/03/27 PHP
php实现telnet功能示例
2014/04/08 PHP
smarty简单分页的实现方法
2014/10/27 PHP
php简单压缩css样式示例
2016/09/22 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
python图片验证码生成代码
2016/07/02 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
django 修改server端口号的方法
2018/05/14 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
C#实现启动一个进程
2016/10/01 面试题
党员自我评价分享
2013/12/13 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
毕业班工作总结
2015/08/10 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS