我们先来讲list函数。
list函数语法:
1 |
|
它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推。
我们来实验看看:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
分析结果:
结论:
.将下标为0的张三赋值给了$one
将下标为1的李四赋值给了$two
将下标为2的王五赋值给了$three
因此,我们知道了list的功能就是从左到右,一一对应索引数组从0开始的下标值。
请严格记住:索引数组的一一对应原则。list第一个变量对应的是下标为0的数组元素,下标为1的对应的是list里面的第二个数组元素,对应的变量或数组值为空都会报错。
例如:
1 2 3 4 5 6 7 |
|
<?php ($name, $age, $sex) array('Lge' ,'20' ,'男'); echo '我的名字叫:'..'<br />'; echo '我的年龄是:'.$age.'<br />'; echo '我的性别是:'.$sex.'<br />'; ?>
each 函数的规律性上面就更有特点了,并且比较有趣。
语法:
1 |
|
功能:传入一个数组。它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。
我们先来看看each是怎么操作的数组元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
总结:
读取了$kongjie中的第一个元素,将第一个元素('gao'=>'穿黑衣服的')分解开了。
分解后第一个元素变成了一个新数组。
在新数组里面,将原值(穿黑衣服的)放了索引下标1里面,同时放到了关联下标value里面。
在新数组里面,将原键(gao),放到了关联下标key里面,放到了索引下标0里面。
如图所示:
这样我们一下子就看明白了。
接下来我们说说each的另外一个特性。读一次,向后移动一个元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
总结:
读一次向后移动一次【可以想象有一个记录的箭头在移动】,将其中的每个元素拆解成一个新数组
读取到最后,没有可操作的元素了,就会返回了false,不想的同学可以试试哦。
<?php $student=[ 'xiaoming'=>'17', 'xiaoliang'=>'18', ]; $data = each($student); var_dump($data); ?>// [1] => "" [0] => ""
我们知道了list的特性,也知道了each的特性。那list是不是可以和each配合起来一起来完成一些工作呢?
例如:
1 |
|
而list中的第一个变量会去找索引下面0的元素去赋值,第二个变量会找索引下标为1的元素对变量赋值。
我们来看看下面例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
总结:
each 把变量拆成了4个元素
而list把0 =>gao 赋值给了变量$key
list把1 => 穿黑衣服的 赋值给了变量 $value
each到最后会返回false,因此我可以用布尔型循环while来配合完成数组的循环,下面我们看看使用循环的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
总结:
循环一次,执行一次each,执行代码,然后向后移动一个元素
执行到最后返回fasle,因此停止执行。
可以通过each和list配合实现foreach一样的效果。
作为了解章节,不过在实际开发中可能也会用到哦!建议大家课后可以多多练习练习!