PHP遍历数组效率分析
来源:互联网 发布:腾讯软件恶意绑定 编辑:程序博客网 时间:2024/06/08 12:38
要求:两个分别有5000个元素的数组,计算它们的差集。
高效代码:
原因:因为KEY是进行HASH组织的,查询很快。
而VALUE是由KEY组织存放,本身没有索引,每次查找都是遍历。
备注:要针对普通环境下的负载优化,因此对于数组循环及判断上尽量减少执行时间,提高执行效率。以防止超时。
在引用中发现,在PHP中,对于数组,哪怕是一维数组,在进行查找的过程中,array_key_exists要比in_array效率高出十几倍道几十倍。在大数据量的判断中,引用键值搜索,要比直接进行数据搜索要快的很多。所以,可以有针对性的把要搜索的数据先归为一个以维数组,以键值为搜索值,将会大大提高执行效率。
普通代码:
function arr_diff($arr1,$arr2){ foreach($arr1 as $key=>$value){ if(in_array($value,$arr2,true)){ unset($arr1[$key]); } } return $arr1; }
高效代码:
function arr_diff($arr1,$arr2){ $arr2 = array_flip($arr2); foreach($arr1 as $key=>$value){ if(isset($arr2[$value])){ unset($arr[$key]); } } return $arr1; }
要求:判断某个值是否在数组中
代码:
function Isexists($key,$array){ $status = false; $array = array_flip($array); if(array_key_exists($key,$array)){ $status = true; } return status; }
原因:因为KEY是进行HASH组织的,查询很快。
而VALUE是由KEY组织存放,本身没有索引,每次查找都是遍历。
备注:要针对普通环境下的负载优化,因此对于数组循环及判断上尽量减少执行时间,提高执行效率。以防止超时。
在引用中发现,在PHP中,对于数组,哪怕是一维数组,在进行查找的过程中,array_key_exists要比in_array效率高出十几倍道几十倍。在大数据量的判断中,引用键值搜索,要比直接进行数据搜索要快的很多。所以,可以有针对性的把要搜索的数据先归为一个以维数组,以键值为搜索值,将会大大提高执行效率。
0 0
- PHP遍历数组效率分析
- list遍历方式效率分析
- PHP foreach遍历数组
- php多维数组遍历
- php遍历数组
- php 数组遍历
- pHp学习--数组遍历
- php 数组遍历foreach
- PHP数组的遍历
- PHP函数遍历数组
- php数组遍历
- PHP数组的遍历
- php遍历数组
- php数组遍历
- php数组遍历
- PHP 数组遍历方法
- php中的数组遍历
- php 数组 广度遍历
- 地址有关码和地址无关码
- cuda优化-展开循环
- 第6周作业-图像缩放显示
- 软件开发文档范例
- MapReduce源码分析之Eclipse中的代码如何提交给JobTracker
- PHP遍历数组效率分析
- PDF如何转换成Word
- 结构体位域操作
- OCP-1Z0-051 第8题 子查询和多表关联查询和情况
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 关于.NET编译的目标平台(AnyCPU,x86,x64)
- IOS获取图片方法,避免内存过大闪退
- 实现一个可限制最大连接数的Proactor服务器
- System.Web.HttpRequestValidationException——从客户端检测到危险的Request值