谈一谈PHP中数组元素的遍历
2017-10-10 13:50
78 查看
PHP 中的数组实际上是一个有序映射。每个元素都是一个键值对(key=>value),在PHP的数组中,数组的key通常为整数或字符串,数组元素的value可以是整数、浮点数、字符串甚至另一个数组或对象。
. 当数组的键为连续键时,可以利用for循环来遍历该数组的元素:
代码示例:
显示结果:
. 当数组的键为非连续键时:
①使用 while() 和 list(),each()配合使用。
代码示例:
显示结果:
注意:list()语言结构仅用于数字“键”的数组,并且要求数字“键”从0开始连续递增,关联数组并不能赋值,或者是既有数字索引又有关联索引,就会只取数组里面的数字索引元素。each()返回数组中当前的键/值对并将数组指针向前移动一步.
②foreach( )则是更加常用的方法:
对于foreach( ),有以下两种语法,
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
代码示例:
显示结果:
代码示例:
显示结果:
注意:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
③使用next( )函数和循环语句遍历
代码示例;
显示结果:
855f
注意:
由于使用next( )函数返回数组下一个元素“值”,如果这个“值”为空,循环将不能继续执行下去,遍历有可能失败。因此,如果数组中的某个元素“值”为空,则不能用next( )函数遍历数组。
. 当数组的键为连续键时,可以利用for循环来遍历该数组的元素:
代码示例:
<?php $numbers = range(1, 5); for ($i=0; $i <count($numbers) ; $i++) { echo "the element is ".$numbers[$i]."<br/>"; } ?>
显示结果:
. 当数组的键为非连续键时:
①使用 while() 和 list(),each()配合使用。
代码示例:
<?php $arr= array('php','python','java','go'); while(list($key,$val)= each($arr)) { echo "This language element is $val.<br />"; } ?>
显示结果:
注意:list()语言结构仅用于数字“键”的数组,并且要求数字“键”从0开始连续递增,关联数组并不能赋值,或者是既有数字索引又有关联索引,就会只取数组里面的数字索引元素。each()返回数组中当前的键/值对并将数组指针向前移动一步.
②foreach( )则是更加常用的方法:
对于foreach( ),有以下两种语法,
1. foreach (array_expression as $value) statement 2. foreach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
代码示例:
<?php $a = array('a'=>'f76g', 2=>'b', 'c','d'=>'csd32'); foreach ($a as $aa){ echo "This element is $aa! <br />"; } ?>
显示结果:
代码示例:
<?php $a = array('a'=>'f76g', 2=>'b', 'c','d'=>'csd32'); foreach ($a as $key=>$value){ echo "This element is $value! <br />"; } ?>
显示结果:
注意:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
③使用next( )函数和循环语句遍历
代码示例;
<?php $colors = array('orange', 'red', 'yellow'); $fruits = array('orange', 'apple', 'banana'); $temp = array_combine($colors, $fruits); reset($temp); do{ $key = key($temp); $value = current($temp); echo $key." ==> ".$value."<br/>"; }while(next($temp)); ?>
显示结果:
855f
注意:
由于使用next( )函数返回数组下一个元素“值”,如果这个“值”为空,循环将不能继续执行下去,遍历有可能失败。因此,如果数组中的某个元素“值”为空,则不能用next( )函数遍历数组。
相关文章推荐
- PHP 遍历多维数组成一维,(数组元素可为对象)
- PHP中遍历数组元素的几种方法
- php遍历数组
- PHP 数组的遍历的几种方式(以及foreach与for/while+each效率的比较)
- php对文件夹进行相关操作(遍历、计算大小)
- php数组遍历
- php学习笔记之数组遍历练习题1
- PHP中怎么遍历数组,并且将其插入到数据库表中,求大神指教。
- php多维数组的遍历方法
- php2维数组遍历
- php中的类与对象(遍历)
- PHP遍历文件夹及子文件夹所有文件
- PHP遍历文件夹与文件类及处理类用法实例
- Javascript数组和php数组遍历对比介绍
- php 目录遍历、删除 函数的使用介绍
- php遍历一个文件夹下的所有文件和子文件夹
- PHP实现当前文件夹下所有文件和文件夹的遍历
- php中删除数组元素
- PHP数组操作,数组排序,数组元素操作,数组元素定位
- php文件夹遍历的几种方法