list结构搭配each函数遍历数组

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
*/
原文地址:https://www.cnblogs.com/chenjiacheng/p/6522628.html