PHP遍历数组的三种方法及效率比较分析

PHP遍历数组的三种方法及效率比较分析
本文对PHP遍历数组的三种方法和效率比较进行了分析,供大家参考,具体分析如下:

今天,一位朋友问我php遍历数组的方式,告诉她有多少。顺便说一下,总结,如果总结不完整,请朋友们指出。

首先,foreach()

foreach()是遍历数组中的数据的最简单和最有效的方式。

< PHP
$ URL =阵列('AAA',{BBB},CCC,'ddd);
foreach(网址URL美元美元){
这个站点的URL是url!;
}
>
显示结果:
这个网址是AAA
这个网址是BBB
这个网址是CCC
这个网址是DDD

第二,同时()和列表(),每个()。
< PHP
$ URL =阵列('AAA',{BBB},CCC,'ddd);
当(列表($,$)=每个(URL)){
回声这站点的URL是美元价值;
}
>

显示结果:
这个网址是AAA
这个网址是BBB
这个网址是CCC
这个网址是DDD

第三,用于()用于遍历数组
< PHP
$ URL =阵列('AAA',{BBB},CCC,'ddd);
对于($ i = 0;$ i <计数($ URL);$ + +){
$ $ $;
回声这网站网址为海峡;
}
>
显示结果:
这个网址是AAA
这个网址是BBB
这个网址是CCC
这个网址是DDD

有时有人问这些遍历数组的方法,这是比较快的,下面会理解一个简单的测试。

测试下面三个遍历数组的速度

一般来说,有三种方法来遍历数组,,,和foreach。最简单的和方便的一个foreach。让我们尝试一起遍历一维数组的下标50000的时间。
< PHP
ARR =阵列(美元);
($ i = 0;$ i < 50000;$ + +){
$ ARR { } =我*兰德(10009999);
}
getRuntime()函数
{
列表(USEC美元美元,SEC)=爆炸(
返回((浮动)$ USEC +(浮动)$秒);
}
######################################
time_start美元= getRuntime();
为($我= 0;$我<计数($ ARR);$ i++){
$str = $ ARR { $我};
}
time_end美元= getRuntime();
time_used美元美元美元time_start time_end =;
echo'used时间为:'轮(time_used美元,7)。(s);
unset($str,time_start美元美元美元,time_end,time_used);
######################################
time_start美元= getRuntime();
而(表(美元美元关键,Val)=每($ ARR)){
美元= $;
}
time_end美元= getRuntime();
time_used美元美元美元time_start time_end =;
而echo'used时间:'轮(time_used美元,7)。(s);
unset($str,美元美元美元的关键,Val,time_start,time_end美元,美元time_used);
######################################
time_start美元= getRuntime();
foreach(ARR美元美元美元关键= > Val){
美元= $;
}
time_end美元= getRuntime();
time_used美元美元美元time_start time_end =;
echo'used时间分别是:'轮(time_used美元,7)。(s);
>

测试结果:
使用时间为:0.0228429(s)
使用时间:0.0544658(s)
foreach使用时间:0.0085628(S)
经过反复试验,结果表明,对于相同的数组遍历,foreach速度最快,最慢的是时间。从原理上看,一是对数组的拷贝操作复制、阵列),而指数通过移动内部操作数组,虽然应该比foreach速度一般的逻辑(因为foreach在第一阵列,开始实施时,直接将内部指标。)但结果正好相反。原因是,foreach是PHP内部实现,虽然是一个普遍的环结构,因此,在通常的应用,则是简单而有效的。在PHP5,foreach可以遍历的C的属性小姑娘。

希望本文能对大家的PHP程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部