基本遍历语法
foreach( $数组变量名 as 【$键变量key => 】 $值变量value){
//这是循环体,其中,该结构会将该数组的每一个单元(项),按顺序依次取得
//并将单元的下标赋值给键变量key,将单元的值赋值给值变量value
}
遍历原理
对于php来说,每一个数组中,都有一个“内置的”指针,通常它指向这个数组的某个单元,图示如下:
举例:
$arr = array( 12, 5, ‘aa’=>8, 6=>10, ‘bb’=> 3, 4);
指针是可以人为移动的——通过系统函数;
有如下一些函数可以进行“指针操作”:
$v1 = next( $arr ); //将数组的指针移动到“下一个单元”,并取得这个新位置(新单元)上的值
$v2 = prev( $arr ); //将数组的指针移动到“上一个单元”,并取得这个新位置(新单元)上的值
$v3 = current( $arr ); //直接取得数组的指针所在位置的单元的值;
$v4 = key( $arr ); //直接取得数组的指针所在位置的单元的键(下标);
$v5 = reset( $arr ); //将数组的指针移动到“第一个单元”,并取得第一个单元的值。就是恢复数组
$v6 = end( $arr ); //将数组的指针移动到“最后一个单元”,并取得最后一个单元的值
遍历流程图:
for+next遍历数组
需求:
有这样一个数组:
$arr = array( 12, 5, ‘aa’=>8, 6=>10, ‘bb’=> 3, 4);
不使用“foreach”,而是使用for循环,将他遍历输出每一项的下标和值!
while + each + list遍历数组
each()函数的使用:
each()函数可以(先)取得一个数组的“当前单元”的键和值,并(再)将该数组的指针移动到下一个单元
举例:
$arr = array( 12, ‘aa’=>8, 6=>10, ‘bb’=> 3, 4);
$a = each( $arr ); //这里,取得了数组$arr的第一个单元的键(0),和值(12),
//结果,$a是一个数组,其中有 4 项!因为取得的2个数据,做了“双份存储”
//一份是索引数组,下标0为取得键(0),下标1为取得的值(12)
//另一份是关联数组,下标key为取得键(0),下标value为取得的值(12)
举例:
使用while+each + list来实现数组的通用遍历: