本文对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
程序设计有所帮助。