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中文汉字验证码
Apr 08 PHP
php递归列出所有文件和目录的代码
Sep 10 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
PHP加密技术的简单实现
Sep 04 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 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学习之数组值的操作
2011/04/17 PHP
php字符串分割函数explode的实例代码
2013/02/07 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
javascript import css实例代码
2008/07/18 Javascript
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
php 修改密码实现代码
2017/05/24 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
python解释器安装教程的方法步骤
2020/07/02 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
高三高考决心书
2014/03/11 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
最常使用的求职信
2014/05/25 职场文书
物理学专业自荐信
2014/06/11 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang
Oracle使用别名的好处
2022/04/19 Oracle
Python如何让字典保持有序排列
2022/04/29 Python