1.php in_array方法说明

PHP查找数组元素是否存在,一般会使用in_array方法。
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数说明:
needle
待搜索的值,如果needle是字符串,比较是区分大小写的。
haystack
用来比较的数组
strict
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同
返回值
如果找到 needle 则返回 TRUE,否则返回 FALSE。
2.in_array查找元素效率
当比较的数组haystack较大时,in_array效率会很低
例子:使用in_array对有10万个元素的数组进行1000次比较
<?php
$arr = array();
// 创建10万个元素的数组
for($i=0; $i<100000; $i++){
$arr[] = $i;
}
// 记录开始时间
$starttime = getMicrotime();
// 随机创建1000个数字使用in_array比较
for($j=0; $j<1000; $j++){
$str = mt_rand(1,99999);
in_array($str, $arr);
}
// 记录结束时间
$endtime = getMicrotime();
echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>';
/**
* 获取microtime
* @return float
*/
function getMicrotime(){
list($usec, $sec) = explode(' ', microtime());
return (float)$usec + (float)$sec;
}
?>
run time:2003.6449432373ms
使用in_array判断元素是否存在,在10万个元素的数组中比较1000次,运行时间需要约2秒
3.提高查找元素效率方法
我们可以先使用array_flip进行键值互换,然后使用isset方法来判断元素是否存在,这样可以提高效率。
例子:使用array_flip先进行键值互换,再使用isset方法判断,在10万个元素的数组中比较1000次
<?php
$arr = array();
// 创建10万个元素的数组
for($i=0; $i<100000; $i++){
$arr[] = $i;
}
// 键值互换
$arr = array_flip($arr);
// 记录开始时间
$starttime = getMicrotime();
// 随机创建1000个数字使用isset比较
for($j=0; $j<1000; $j++){
$str = mt_rand(1,99999);
isset($arr[$str]);
}
// 记录结束时间
$endtime = getMicrotime();
echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>';
/**
* 获取microtime
* @return float
*/
function getMicrotime(){
list($usec, $sec) = explode(' ', microtime());
return (float)$usec + (float)$sec;
}
?>
run time:1.2781620025635ms
使用array_flip与isset判断元素是否存在,在10万个元素的数组中比较1000次,运行时间需要约1.2毫秒
因此,对于大数组进行比较,使用array_flip与isset方法会比in_array效率高很多。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# php
# 数组查找元素
# PHP的数组中提高元素查找与元素去重的效率的技巧解析
# PHP查找与搜索数组元素方法总结
# 解析php二分法查找数组是否包含某一元素
# 万个
# 是否存在
# 键值
# 组中
# 结束时间
# 还会
# 我们可以
# 第三个
# 会比
# 很低
# 方法来
# 值为
# 提高效率
# 返回值
# 效率高
# color
# ff
# TRUE
# 一般会
相关文章:
,在苏州找工作,上哪个网站比较好?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
网站网页制作专业公司,怎样制作自己的网页?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
宝塔面板如何快速创建新站点?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
上海网站制作开发公司,上海买房比较好的网站有哪些?
Android滚轮选择时间控件使用详解
平台云上自助建站如何快速打造专业网站?
javascript中的try catch异常捕获机制用法分析
网站制作软件免费下载安装,有哪些免费下载的软件网站?
建站主机如何安装配置?新手必看操作指南
如何用PHP快速搭建高效网站?分步指南
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
如何通过WDCP绑定主域名及创建子域名站点?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何在云主机上快速搭建多站点网站?
如何在阿里云ECS服务器部署织梦CMS网站?
如何挑选最适合建站的高性能VPS主机?
建站之星多图banner生成与模板自定义指南
建站主机数据库如何配置才能提升网站性能?
如何快速生成凡客建站的专业级图册?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何用免费手机建站系统零基础打造专业网站?
网站专业制作公司有哪些,做一个公司网站要多少钱?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何快速打造个性化非模板自助建站?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何在阿里云部署织梦网站?
如何制作网站标识牌,动态网站如何制作(教程)?
如何在IIS中新建站点并配置端口与IP地址?
深圳网站制作培训,深圳哪些招聘网站比较好?
如何用西部建站助手快速创建专业网站?
如何用y主机助手快速搭建网站?
如何配置IIS站点权限与局域网访问?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在服务器上配置二级域名建站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
小型网站建站如何选择虚拟主机?
如何选购建站域名与空间?自助平台全解析
如何设置并定期更换建站之星安全管理员密码?
建站之星代理平台如何选择最佳方案?
如何快速生成ASP一键建站模板并优化安全性?
招贴海报怎么做,什么是海报招贴?
制作宣传网站的软件,小红书可以宣传网站吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。