- 浏览: 145947 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (98)
- css (17)
- Java (7)
- PHP (16)
- javascript (6)
- Ajax (0)
- jQuery (1)
- 网络 (3)
- windows (1)
- 服务器 (2)
- 开发流程 (0)
- SEO (1)
- 网页设计制作 (5)
- 数据库 (7)
- 工具 (6)
- 移动通信 (1)
- 数据库 oracle (5)
- PHP phpcms (2)
- thinksns (1)
- jsp (1)
- dedecms (7)
- EmEditor (1)
- 数据库,mysql (5)
- 数据库,mssql (11)
- svn (1)
- PHP,ecshop (1)
- Ofbiz (0)
- linux (2)
- destoon笔记 (1)
- discuz (1)
最新评论
-
sibyl_pisces:
guangqiang 写道嗯 有点意思 敬同行 你也是在青岛吗 ...
CSS+DIV固定底部的漂浮导航条 -
guangqiang:
嗯 有点意思 敬同行 你也是在青岛吗 ?
CSS+DIV固定底部的漂浮导航条 -
sibyl_pisces:
anqiuejack 写道解决了我的问题,但还是搞不懂对IE固 ...
CSS+DIV固定底部的漂浮导航条 -
anqiuejack:
解决了我的问题,但还是搞不懂对IE固定设定的代码的意思,这是J ...
CSS+DIV固定底部的漂浮导航条 -
yuxiatongzhi:
绑定事件里 return false; 如果设置 ...
ie6 javascript:void(0);
1. foreach()
foreach()是一个用来遍历数组中数据的最简单有效的方法。
#example1:
- <?php
- $colors = array ( ' red ' , ' blue ' , ' green ' , ' yellow ' ) ;
- foreach ( $colors as $color ) {
- echo " Do you like $color ? <br /> " ;
- }
- ?>
显示结果:
Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?
2. while()
while() 通常和 list(),each()配合使用。
#example2:
- <?php
- $colors = array ( ' red ' , ' blue ' , ' green ' , ' yellow ' ) ;
- while ( list ( $key , $val ) = each ( $colors )) {
- echo " Other list of $val .<br /> " ;
- }
- ?>
显示结果:
Other list of red.
Other list of blue.
Other list of green.
Other list of yellow.
3. for()
#example3:
- <?php
- $arr = array ( " 0 " => " zero " , " 1 " => " one " , " 2 " => " two " ) ;
- for ( $i = 0 ; $i < count ( $arr ) ; $i ++ ) {
- $str = $arr [ $i ] ;
- echo " the number is $str .<br /> " ;
- }
- ?>
显示结果:
the number is zero.
the number is one.
the number is two.
========= 以下是函数介绍 ==========
key()
mixed key(array input_array)
key()函数返回input_array中位于当前指针位置的键元素。
#example4
- <?php
- $capitals = array ( " Ohio " => " Columbus " , " Towa " => " Des Moines " , " Arizona " => " Phoenix " ) ;
- echo " <p>Can you name the capitals of these states?</p> " ;
- while ( $key = key ( $capitals )) {
- echo $key . " <br /> " ;
- next ( $capitals ) ;
- //每个key()调用不会推进指针。为此要使用next()函数
- }
- ?>
显示结果:
Can you name the capitals of these states?
Ohio
Towa
Arizona
reset()
mixed reset(array input_array)
reset()函数用来将input_array的指针设置回数组的开始位置。如果需要在一个脚本中多次查看或处理同一个数组,就经常使用这个函数,另外这个函数还常用于排序结束时。
#example5 - 在#example1上追加代码
- <?php
- $colors = array ( ' red ' , ' blue ' , ' green ' , ' yellow ' ) ;
- foreach ( $colors as $color ) {
- echo " Do you like $color ? <br /> " ;
- }
- reset ( $colors ) ;
- while ( list ( $key , $val ) = each ( $colors )) {
- echo " $key => $val <br /> " ;
- }
- ?>
显示结果:
Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?
0 => red
1 => blue
2 => green
3 => yellow
注意:将一个数组赋值给另一个数组时会重置原来的数组指针,因此在上例中如果我们在循环内部将 $colors 赋给了另一个变量的话将会导致无限循环。
例如将 $s1 = $colors; 添加到while循环内,再次执行代码,浏览器就会无休止地显示结果。
each()
array each(array input_array)
each()函数返回输入数组当前键/值对,并将指针推进一个位置。返回的数组包含四个键,键0和key包含键名,而键1和value包含相应的数据。如果执行each()前指针位于数组末尾,则返回FALSE。
#example6
- <?php
- $capitals = array ( " Ohio " => " Columbus " , " Towa " => " Des Moines " , " Arizona " => " Phoenix " ) ;
- $s1 = each ( $capitals ) ;
- print_r ( $s1 ) ;
- ?>
显示结果:
Array ( [1] => Columbus [value] => Columbus [0] => Ohio [key] => Ohio )
current(),next(),prev(),end()
mixed current(array target_array)
current()函数返回位于target_array数组当前指针位置的数组值。与next()、prev()、和end()函数不同,current()不移动指针。
next()函数返回紧接着放在当前数组指针的下一个位置的数组值。
prev()函数返回位于当前指针的前一个位置的数组值,如果指针本来就位于数组的第一个位置,则返回FALSE。
end()函数将指针移向target_array的最后一个位置,并返回最后一个元素。
#example7
- <?php
- $fruits = array ( " apple " , " orange " , " banana " ) ;
- $fruit = current ( $fruits ) ; //return "apple"
- echo $fruit . " <br /> " ;
- $fruit = next ( $fruits ) ; //return "orange"
- echo $fruit . " <br /> " ;
- $fruit = prev ( $fruits ) ; //return "apple"
- echo $fruit . " <br /> " ;
- $fruit = end ( $fruits ) ; //return "banana"
- echo $fruit . " <br /> " ;
- ?>
显示结果:
apple
orange
apple
banana
=========== 下面来测试三种遍历数组的速度 ===========
一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间。
测试环境:
Intel Core 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 = array () ;
- for ( $i = 0 ; $i < 50000 ; $i ++ ){
- $arr [] = $i * rand ( 1000 , 9999 ) ;
- }
- function GetRunTime ()
- {
- list ( $usec , $sec ) = explode ( " " , microtime ()) ;
- return (( float ) $usec + ( float ) $sec ) ;
- }
- ######################################
- $time_start = GetRunTime () ;
- for ( $i = 0 ; $i < count ( $arr ) ; $i ++ ){
- $str = $arr [ $i ] ;
- }
- $time_end = GetRunTime () ;
- $time_used = $time_end - $time_start ;
- echo ' Used time of for: ' . round ( $time_used , 7 ) . ' (s)<br /><br /> ' ;
- unset ( $str , $time_start , $time_end , $time_used ) ;
- ######################################
- $time_start = GetRunTime () ;
- while ( list ( $key , $val ) = each ( $arr )){
- $str = $val ;
- }
- $time_end = GetRunTime () ;
- $time_used = $time_end - $time_start ;
- echo ' Used time of while: ' . round ( $time_used , 7 ) . ' (s)<br /><br /> ' ;
- unset ( $str , $key , $val , $time_start , $time_end , $time_used ) ;
- ######################################
- $time_start = GetRunTime () ;
- foreach ( $arr as $key => $val ){
- $str = $val ;
- }
- $time_end = GetRunTime () ;
- $time_used = $time_end - $time_start ;
- echo ' Used time of foreach: ' . round ( $time_used , 7 ) . ' (s)<br /><br /> ' ;
- ?>
测试结果:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
经过反复多次测试,结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。从原理上来看,foreach是对数组副本进 行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执 行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循 环结构。所以,在通常应用中foreach简单,而且效率高。在PHP5下,foreach还可以遍历类的属性。
http://phpstone.com/the-method-of-traverse-an-array-in-php/?download=list_array01.php
发表评论
-
Destoon B2B复制、新建商城模块
2013-07-08 16:50 1157开发背景:网站准备一个赠品模块,赠品的计算方法和商城还 ... -
dede首页或列表页调用文章内容页body
2013-03-29 10:09 811在使用dede过程,有的朋友会调调出文章的列表的内容出来,怎 ... -
Video not found or access denied错误解决方法 网站潜入视频播放flv等格式错误
2012-10-15 15:15 2542问题描述: 在p ... -
为什么PHP文件一般没有结束标记
2012-07-19 15:57 1615对于经常开发PHP的程序员来说,习惯性的文件末尾不加结束 ... -
dede嵌套获取栏目及其子栏目列表
2012-06-19 14:10 1102修改 channerl.lib.php <?ph ... -
Ecshop多语言切换
2012-02-14 17:49 10951)、首先打开 includd ... -
常用的php ADODB使用方法集锦
2012-02-02 13:02 871<?php //定义数据 ... -
php中出现“Call to a member function Execute() on a non-object”的问题
2012-01-06 14:18 14513没得办法,学艺不精,今天使用php+adodb进行数据库操作 ... -
织梦标签全部调用方法
2011-11-05 22:14 1232* 关键描述调用标签: <meta nam ... -
DEDE织梦后台打开为什么是空白
2011-11-02 12:22 3003dedecms织梦5.7空白的第一种可能: dedecm ... -
您的服务器没有安装这个PHP扩展:curl ... Failed
2011-10-23 13:21 4000今天安装Thinksns的时候出现下面的错误,在网上搜了一下, ... -
php数组 多维数组
2011-05-27 10:05 900关于数组: PHP中的数 ... -
Smarty中foreach的index、iteration的使用
2011-04-18 10:41 5327个人观点:在从事PHP开发一年后我深刻的体会到了Sma ... -
判断php变量是否定义,是否为空
2011-02-24 16:59 1028isset() 【1】 Returns TRUE if ... -
PHP中文乱码问题
2011-02-10 12:31 677在PHP网页编程是经常会出现编码错误的问题,那编码错误这 ...
相关推荐
本篇文章将深入探讨几种常见的PHP遍历数组的方法,包括`foreach`、`while`以及`for`循环,同时也会提及一些与数组操作相关的辅助函数,如`key()`、`reset()`和`each()`。 首先,`foreach`循环是最常用的一种遍历...
在PHP编程中,遍历数组是一项基础且重要的任务,它允许我们访问并处理数组中的每个元素。本篇文章将深入探讨几种常见的PHP数组遍历方法,包括`foreach`、`while`以及`for`循环,同时也会提及一些与数组操作相关的...
总之,PHP提供了多种遍历数组的方法,开发者可以根据不同的场景灵活选择。理解并掌握这些方法,能帮助我们更高效地处理数组数据。在实际开发中,应结合项目需求和性能要求,选择最适合的遍历方式。
本文将汇总PHP中遍历数组的三种主要方法以及介绍几个数组指针操作函数。 首先,我们来看一下PHP中数组遍历的三个方法: 1. **foreach()**: `foreach` 是最常用且最简洁的遍历数组的方式,适用于各种类型的数组。...
PHP提供了foreach循环来遍历数组,foreach循环不需要关注数组元素的键(key),可以直接通过值(value)来获取数组中的数据。在Demo3.php中,也展示了如何使用foreach循环遍历数组。 在PHP中,可以通过数组变量后加方...
1. **$.each(array, [callback])**:这是一个通用的遍历方法,可以用于遍历数组或对象。在数组上下文中,`callback`函数接收两个参数,分别是当前元素的索引`key`和值`val`。在提供的代码示例中,它打印出数组中的每...
这个自定义函数需要能够遍历数组的每一个元素,检查它是否是数组,如果是数组,则对它再次进行遍历;如果不是数组,就直接进行字符串替换。这个过程可以使用递归方法来完成。 文章中提供的示例代码演示了如何通过...
在PHP中实现上述操作时,需要利用其语言的特性,比如递归函数的定义、数组的遍历和比较等。PHP为数组操作提供了很多内置函数,如`foreach`、`array_sum`、`array_sort`等,这些函数可以简化数组操作的代码编写,提高...
还有PHP专题文章如《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《php面向对象程序设计入门教程》及《php常见数据库操作技巧汇总》...
遍历数组时,可以使用for循环和foreach循环结构。for循环通常用于遍历索引数组,而foreach循环更适用于遍历关联数组。 在数组元素的增加和删除方面,PHP提供了array_push()函数和array_unshift()函数用于在数组的...
以上就是PHP遍历文件夹的几种常见方法的介绍。掌握这些基础知识点,可以大大提升我们在文件管理方面的开发效率,并确保应用的健壮性。在实践中,灵活运用这些函数,我们可以创建出更加丰富的文件操作功能,以满足...
在介绍PHP遍历树的常用方法时,我们通常会关注如何有效地访问树结构中的每一个节点。树是一种重要的数据结构,在计算机科学中广泛用于表示具有层次关系的数据。在PHP中,文件系统可以被看作一种树形结构,文件夹和...
如果是数组,它会遍历数组的每个元素,并根据元素类型(键是否是数字)决定如何生成XML结构。 在遍历过程中,`$elementLevel`变量用于跟踪当前元素层级,以便正确地添加开始和结束标签。当`$elementLevel`为0时,...
2. 遍历二维数组的方法:在PHP中,可以通过嵌套的foreach循环来遍历二维数组中的每个一维数组。在本例中,使用了foreach循环遍历二维数组,并且有两种不同的遍历方式:一种是通过引用传递数组,另一种是通过键值对...
接下来,函数通过嵌套循环遍历数组,根据键名提取出对应的值并赋值给新的数组。这样做是为了之后使用`array_multisort()`函数进行排序时,可以按照正确的顺序获取到所有需要排序的值。 之后,函数使用`join()`函数...