基于PHP遍历数组的方法分析

基于PHP遍历数组的方法分析
1。foreach()
foreach()是遍历数组中的数据的最简单和最有效的方式。
# example1:
复制代码代码如下所示:
< PHP
颜色=阵列($',蓝色的,绿色的,'');
foreach(colorsas美元美元的颜色){
你喜欢颜色吗;
}
>

显示结果:
你喜欢红色吗
你喜欢蓝色吗
你喜欢绿色吗
你喜欢黄色吗

2。而()
虽然()通常与列表()一起使用,每个()。
#例子:
复制代码代码如下所示:
< PHP
颜色=阵列($',蓝色的,绿色的,'');
当(列表($,$)=每个($颜色)){
回声美元价值其他列表;
}
>

显示结果:
其他红色名单。
其他蓝色名单。
其他绿色名单。
其他黄色名单。

三.对于()
#例子:
复制代码代码如下所示:
< PHP
$ ARR =阵列(0 >零
为($我= 0;$我<计数($ ARR);$ i++){
$str = $ ARR { $我};
回声数为海峡;
}
>

显示结果:
号码是零。
号码是一。
号码是二。

以下是对========== =========功能
(关键)
混合密钥(阵列input_array)
关键()函数返回在input_array指针的当前位置的关键要素。
#例
复制代码代码如下所示:
< PHP
美元=数组(俄亥俄=哥伦布
你能说出这些州的首府吗;
当(键=键(大写)){
回波键。;
下一个(大写字母);
(键)每一个调用都不会推进指针。
}
>

显示结果:
你能说出这些州的首府吗
俄亥俄州
东和
亚利桑那州
reset()
混合复位(阵列input_array)
reset()函数是用来设置的input_array指针返回数组的开始位置。这个功能往往是如果你需要查看或处理一个脚本相同的阵列中多次用到,而且常常用到的功能在最终排序
# example5附加代码# example1
复制代码代码如下所示:
< PHP
颜色=阵列($',蓝色的,绿色的,'');
foreach(colorsas美元美元的颜色){
你喜欢颜色吗;
}
重置($颜色);
当(列表($,$)=每个($颜色)){

}
>

显示结果:
你喜欢红色吗
你喜欢蓝色吗
你喜欢绿色吗
你喜欢黄色吗
0 =红色
1 =蓝色
2 =绿色
3 =黄色
注意:将数组分配给另一个数组将重置原始数组指针,所以在这种情况下,如果我们将$颜色分配给另一个变量,它将导致一个无限循环。
例如,S1 =美元美元的颜色;添加到while循环和再执行的代码,和浏览器将不间断的结果。
(一)
每个阵列(阵列input_array)
每个()函数返回输入数组当前的键/值对,并将指针前进到一个位置。返回的数组包含四个键,0个键和键包含键,键1和值包含相应的数据。如果每个(前面)指针的执行位于数组的结尾,则返回false。
# G酰化酶
复制代码代码如下所示:
< PHP
美元=数组(俄亥俄=哥伦布
美元=每一个(大写字母);
print_r(合一);
>

显示结果:
数组({ 1 { }值哥伦布=哥伦布哥伦布{ 0 } =俄亥俄俄亥俄)
电流()()(),接下来,沪指(),最后()
混合电流(阵列target_array)
The current () function returns an array value that is located in the current pointer position of the target_array array.Unlike next (), prev (), and end () functions, current () does not move pointers.
下一个()函数返回一个数组值,该值立即放在当前数组指针的下一个位置。
沪指()函数返回当前指针数组值第一的位置,如果指针是原来位于数组的第一个位置,则返回FALSE。
结束()函数指针移动到最后位置的target_array返回最后一个元素。
# example7
复制代码代码如下所示:
< PHP
水果=数组(苹果
水果=当前(水果);
回音果。;
水果=下一个(水果);
回音果。;
水果=沪指美元($水果); / /返回苹果
回音果。;
水果=结束(水果);
回音果。;
>

显示结果:
苹果
橙色
苹果
香蕉
以下===========测试三种遍历速度===========阵列
一般来说,有三种方法来遍历数组,,,和foreach。最简单的和方便的一个foreach。让我们尝试一起遍历一维数组的下标50000的时间。
测试环境:
英特尔的核心due2 2ghz
2gb 1067mhz DDR3
Mac OS X 10.5.7
Apache 2.0.59
MySQL 5.0.41
PHP 5.2.6
# example8
复制代码代码如下所示:
< 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的属性小姑娘。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部