zhangkala 2018-07-13
数组的遍历
在平时操作数组时,在数组中声明大量数据通过函数调用获取,而不是自己手动解决。使用数组目的是将有关联数据形成集合,作为一个单元使用,达到批量数据处理的目的。很少是直接访问数组中的成员,大部分数组都是使用遍历的方式处理数组中每个元素。下面为大家介绍一下php中常见的数组遍历方法?
使用for循环循坏遍历数组(不常用)
for循坏遍历数组的方法不仅在php中使用也在其他编程语言中使用,在其他语言中它是通过数组的下标来访问数组中每个元素,数组的下标数字必须是连续的。但是在PHP中可以指定非连续的数字索引值,也可以存在以字符串为下标的关联数组。for循坏在php数组循坏中很少使用。
数组元素以html表格的形式输出到浏览器。使用array()语句结构创建一维数组$test,没有指定数组索引下标,默认采取数字索引方式,fo语句循环次数由数组的长度决定。如下所示:
需要注意的是使用for语句遍历多维数组时,需要使用循坏嵌套逐层进行遍历。必须在每层循坏中正确指定索引名称,每层的索引值必须是顺序的数字索引。
使用foreach语句遍历数组(常用)
for语句遍历数组时有很多的局限性。for在遍历数组很少用。php4引入了foreach结构,是针对遍历数组设计的,是一种遍历数组的简单方法。它遍历数组时跟数组下标无关,不关是连续的数字索引数组还是以字符串为下标的关联数组,都可以使用foreach语句遍历。php5开始还可以遍历对象。foreach语句语法如下:
第一种格式:foreach (array_expression as $value) {
循环体
}
代码如下
第二种格式:foreach (array_expression as $key=>$value) {
循环体
}
上面两种方式输出的结果是一样的,上面两组代码都是声明了一个一维数组$test,第二种声明方式使用了运算符“=>”,将数组$test中的元素重新指定了索引下标,然后使用foreach语句循坏遍历数组。第一次循坏将数组$test第一个元素赋给变量$value,并输出变量$value的值,并且把数组内部的指针移到第二个元素,以此类推直到结尾停止foreach语句循坏。上面例子只是一个简单的例子,实际工作可能遇到更加复杂的情况,比如说用foreach遍历三维数组以表格形式打印出来等。
使用list()、each()和while函数()遍历数组(初步了解)
each()函数需要传递一个数组作为参数。返回数组中当前元素的键/值,并向后移动数组指针向下一个元素的位置。键名分别为0、1、key和value。其中健民0和key对应的值是一样的,是数组的键名,1和value则包含有数组的值。如果内部越过了数组末端,则each()返回FALSE.
list()函数单它不是真正的函数,是php语言结构。list()用一步操作给一组变量进行赋值,则把数组中赋值给一些变量。list()仅能用于数字索引的数组并假设数字索引从0开始。
while循坏遍历数组,了解了each()和list()语句的使用,就不难理解如何使用while循坏遍历数组了。while语法如下
while(list($key,$value)=each(array_expression)){
循环体
}
while这种联合格式遍历给定的数组。while()语句每次循坏中,each()语句将当前数组元素中的键,赋给list()函数中第一个参数变量$key。并将当前数组元素中的值,赋给list()函数中第二个参数变量$value,并且each()语句执行后还会把数组内部的指针向后移动一次,以此类推直到数组的结尾each()语句返回FALSE终止循坏结束遍历。
<?php. if (!empty($_POST)) {. $data1 = $_POST["data1"];$data2 = $_POST["data2"];$fuhao = $_POST["fuh