概述
在之前的文章中给大家带来了《如何搞定PHP超级全局变量(整理分享)》,这篇文章中详细的介绍了PHP中超级全局变量的相关知识,本篇文章我们一起来看一看PHP中的list、each函数遍历数组的相关知识,希望能够帮助到大家!
list函数与each函数是我们在日常生活中经常能够用到的函数,那么这两个函数应该怎么使用?两者之间有什么特点?他们又是怎么配合使用的?这两个函数是比较有意思的数组函数,函数学习起来并不难,那我们一起来看看吧。
list函数
list
函数它的功能是:能够将索引数组下标为0的对应为变量1,下标为1的对应变量2...list函数能够将数组的元素变成变量使用。
它的基本语法是:
list(变量1,变量2...)
登录后复制
示例如下:
<?php
list($a , $b , $c, $d) = array('好好学习' ,'天天向上' ,'福如东海','寿比南山');
echo '$a----'.$a.'<br />';
echo '$b----'.$b.'<br />';
echo '$c----'.$c.'<br />';
echo '$d----'.$d.'<br />';
?>
登录后复制
输出结果:
由此可以看出,数组中“好好学习”的下标为0,就对应了list函数中的$a;也可以理解为,数组中变量为0的“好好学习”赋值给了list函数中的$a;以此类推。list就是从左到右,一一对应索引数组从0开始的下标值。
同时还有一种情况,示例如下:
<?php
list( , , $c, $d) = array('好好学习' ,'天天向上' ,'福如东海','寿比南山');
echo '$a----'.$a.'<br />';
echo '$b----'.$b.'<br />';
echo '$c----'.$c.'<br />';
echo '$d----'.$d.'<br />';
?>
登录后复制
输出结果:
在上述示例中,下标为2的福如东海赋值给了$c,list中的前两个位置留了空,按照一一对应,所以好好学习和天天向上没有变量与之对应。所以list函数严格遵守一一对应原则,也就是list函数的地一个变量对应的是数组中下标为0的元素,下标为1的对应的是list函数中的第二个变量,以此类推。
当然还有一种情况,示例如下:
<?php
list($a , $b , $c, $d) = array(2=>'好好学习' ,'天天向上' ,'福如东海','寿比南山');
echo '$a----'.$a.'<br />';
echo '$b----'.$b.'<br />';
echo '$c----'.$c.'<br />';
echo '$d----'.$d.'<br />';
?>
登录后复制
输出结果:
在上述示例中,数组的下标因为键名直接从2开始,所以数组元素中没有下标为0和1的元素,所以变量a和b就没有对应的值。同时,list函数中只写了四个变量,数组元素中的下标为4和5的福如东海、寿比南山也就没有了对应的变量。
each函数
each
函数的功能是传入一个数组。它会将其中的一个元素拆分为一个新的数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。
示例如下:
<?php
$a=[
'aaa'=>'好好学习',
'bbb'=>'天天向上',
'ccc'=>'福如东海',
'ddd'=>'寿比南山'
];
//第一次each
$data = each($a);
echo '<pre>';
var_dump($data);
echo '</pre>';
?>
登录后复制
输出结果:
由上述示例可以看出运行第一次each函数,将数组元素中的第一个元素也就是aaa=>好好学习拆为一个新的数组。可以理解为,each函数读取了第一个元素,将第一个元素分解开了,在新数组里面,将原值(好好学习)放了索引下标1里面,同时放到了关联下标value里面,将原键(aaa),放到了关联下标key里面,放到了索引下标0里面。
这是运行了一次的结果,那我们再来看一下多运行几次,示例如下:
<?php
$a=[
'aaa'=>'好好学习',
'bbb'=>'天天向上',
'ccc'=>'福如东海'
];
//第一次each
$data = each($a);
echo '<pre>';
var_dump($data);
echo '</pre>';
//第二次each
$data = each($a);
echo '<pre>';
var_dump($data);
echo '</pre>';
//第三次each
$data = each($a);
echo '<pre>';
var_dump($data);
echo '</pre>';
//第四次each
$data = each($a);
echo '<pre>';
var_dump($data);
echo '</pre>';
?>
登录后复制
输出结果:
由此可以看出,每读取一次就会向后移动一次,将其中的每个元素拆分为新的数组,当读取到最后的时候,没有可操作的元素了,就会返回了false。
list和each的配合
我们知道了list的功能,也了解了each的功能,那么两者结合起来使用的话,会碰出什么不一样的火花呢?
我们通过示例来看一下:
<?php
$a=[
'aaa'=>'好好学习',
'bbb'=>'天天向上',
'ccc'=>'福如东海',
];
list($key,$value) = each($a);
echo $key. '-----' .$value .'<br />';
?>
登录后复制
输出结果:
在上述实例中,each把元素拆了,然后list把0 =>aaa 赋值给了变量$key把1 => 好好学习 赋值给了变量 $value。通过我们之前讲到的while循环语句的配合,我们可以得到下面的示例:
<?php
$a=[
'aaa'=>'好好学习',
'bbb'=>'天天向上',
'ccc'=>'福如东海',
];
while(list($key,$value) = each($a)){
echo $key. '-----' .$value .'<br />';
}
?>
登录后复制
输出结果:
由上述结果可以看出,每循环一次,执行一次each,然后向后移动一个元素,执行到最后返回的是flash停止循环。
推荐学习:《PHP视频教程》
以上就是学会使用PHP的List、each函数及配合的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是健壮大神为你收集整理的学会使用PHP的List、each函数及配合的全部内容,希望文章能够帮你解决学会使用PHP的List、each函数及配合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复