首页  >  文章  >  后端开发  >  学会使用PHP的List、each函数及配合

学会使用PHP的List、each函数及配合

WBOY
WBOY原创
2021-10-18 10:40:425062浏览

在之前的文章中给大家带来了《如何搞定PHP超级全局变量(整理分享)》,这篇文章中详细的介绍了PHP中超级全局变量的相关知识,本篇文章我们一起来看一看PHP中的list、each函数遍历数组的相关知识,希望能够帮助到大家!

学会使用PHP的List、each函数及配合

list函数与each函数是我们在日常生活中经常能够用到的函数,那么这两个函数应该怎么使用?两者之间有什么特点?他们又是怎么配合使用的?这两个函数是比较有意思的数组函数,函数学习起来并不难,那我们一起来看看吧。

list函数

list函数它的功能是:能够将索引数组下标为0的对应为变量1,下标为1的对应变量2...list函数能够将数组的元素变成变量使用。

它的基本语法是:

list(变量1,变量2...)

示例如下:

<?php
list($a , $b , $c, $d) = array(&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

输出结果:

1018.01.png

由此可以看出,数组中“好好学习”的下标为0,就对应了list函数中的$a;也可以理解为,数组中变量为0的“好好学习”赋值给了list函数中的$a;以此类推。list就是从左到右,一一对应索引数组从0开始的下标值。

同时还有一种情况,示例如下:

<?php
list( ,  , $c, $d) = array(&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

输出结果:

1018.02.png

在上述示例中,下标为2的福如东海赋值给了$c,list中的前两个位置留了空,按照一一对应,所以好好学习和天天向上没有变量与之对应。所以list函数严格遵守一一对应原则,也就是list函数的地一个变量对应的是数组中下标为0的元素,下标为1的对应的是list函数中的第二个变量,以此类推。

当然还有一种情况,示例如下:

<?php
list($a , $b , $c, $d) = array(2=>&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

输出结果:

1018.03.png

在上述示例中,数组的下标因为键名直接从2开始,所以数组元素中没有下标为0和1的元素,所以变量a和b就没有对应的值。同时,list函数中只写了四个变量,数组元素中的下标为4和5的福如东海、寿比南山也就没有了对应的变量。

each函数

each函数的功能是传入一个数组。它会将其中的一个元素拆分为一个新的数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。

示例如下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   &#39;ddd&#39;=>&#39;寿比南山&#39;
   ];
//第一次each
$data = each($a);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
var_dump($data);
echo &#39;
'; ?>

输出结果:

1018.04.png

由上述示例可以看出运行第一次each函数,将数组元素中的第一个元素也就是aaa=>好好学习拆为一个新的数组。可以理解为,each函数读取了第一个元素,将第一个元素分解开了,在新数组里面,将原值(好好学习)放了索引下标1里面,同时放到了关联下标value里面,将原键(aaa),放到了关联下标key里面,放到了索引下标0里面。

这是运行了一次的结果,那我们再来看一下多运行几次,示例如下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;
   ];
//第一次each
$data = each($a);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
var_dump($data);
echo &#39;
'; //第二次each $data = each($a); echo '
&#39;;
var_dump($data);
echo &#39;
'; //第三次each $data = each($a); echo '
&#39;;
var_dump($data);
echo &#39;
'; //第四次each $data = each($a); echo '
&#39;;
var_dump($data);
echo &#39;
'; ?>

输出结果:

1018.06.png

由此可以看出,每读取一次就会向后移动一次,将其中的每个元素拆分为新的数组,当读取到最后的时候,没有可操作的元素了,就会返回了false。

list和each的配合

我们知道了list的功能,也了解了each的功能,那么两者结合起来使用的话,会碰出什么不一样的火花呢?

我们通过示例来看一下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   ];
list($key,$value) = each($a);
echo $key. &#39;-----&#39; .$value .&#39;<br />&#39;;
?>

输出结果:

1018.07.png

在上述实例中,each把元素拆了,然后list把0 =>aaa 赋值给了变量$key把1 => 好好学习 赋值给了变量 $value。通过我们之前讲到的while循环语句的配合,我们可以得到下面的示例:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   ];
   while(list($key,$value) = each($a)){
    echo $key. &#39;-----&#39; .$value .&#39;<br />&#39;;
 
 }
?>

输出结果:

1018.08.png

由上述结果可以看出,每循环一次,执行一次each,然后向后移动一个元素,执行到最后返回的是flash停止循环。

推荐学习:《PHP视频教程

以上是学会使用PHP的List、each函数及配合的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn