each函数
each:通过数组指针来获取数组的元素,将数组指针下移一位:如果数组指针不是指向一个有效的元素:返回false:其他时候获取到元素(下标和值),返回一个数组(四个元素:2个索引+2个关联元素)
// 定义数组 $arr = array( 'name' => 'Dragon', // 默认的:数组指针在第一位 'age' => 500, 'skill'=> 'run' ); //通过each函数获取数组元素 echo '<pre>'; var_dump(each($arr)); var_dump(each($arr)); var_dump(each($arr)); var_dump(each($arr)); /*输出结果 array (size=4) 1 => string 'Dragon' (length=6) 'value' => string 'Dragon' (length=6) 0 => string 'name' (length=4) 'key' => string 'name' (length=4) array (size=4) 1 => int 500 'value' => int 500 0 => string 'age' (length=3) 'key' => string 'age' (length=3) array (size=4) 1 => string 'run' (length=3) 'value' => string 'run' (length=3) 0 => string 'skill' (length=5) 'key' => string 'skill' (length=5) boolean false*/
证明指针下移:再次获取,获取不到的时候返回false
list结构
list结构:能够自动批量的对变量进行赋值:从数组中去获取对应的索引下标对应的元素,将其值取出来赋值给变量。
list(变量1,变量2...) = 数组变量;
// 从数组中将索引下标为0的元素的值赋值变量1,将索引为1的元素的值赋值给变量2...
// 定义数组 $arr = array(1,2,3); // 使用list结构 list($e1,$e2) = $arr; // 从数组arr取两个: 从0开始的下标(和1) echo $e1,'~',$e2; // 1~2 // 如果目标数组中没有对应的元素,那么就会失败 list($e1,$e2,$e3,$e4) = $arr; // 没有这么多元素 var_dump($e1,$e2,$e3,$e4); // 错误
通常list是搭配each:each获取的数组中一定会有0和1对应的下标元素
$arr = array( 'name' => 'Dragon', // 默认的:数组指针在第一位 'age' => 500, 'skill'=> 'run' ); list($key,$value) = each($arr); echo $key,$value; // nameDragon
list搭配each遍历数组
$arr = array( 'name' => 'Dragon', // 默认的:数组指针在第一位 'age' => 500, 'skill'=> 'run' ); // list搭配each遍历数组 while(list($k,$v) = each($arr)){ //1.先执行each: 从数组中获取元素,指针下移 //2.两个结果: 数组和false //2.1如果结果是数组: 将数组中的0和1元素取出来赋值$k,和$v: true进入循环体 //2.2如果结果是false: 不再进入循环体 echo $k,':',$v,'<br/>'; } /*输出结果 name:Dragon age:500 skill:run */