在PHP中的each()函数

1. 简介

PHP中的each()函数是一个非常有用的函数,它可以用来遍历数组中的每一个元素。使用each()函数可以快速方便地获取数组中的每个元素及其键值,同时each()函数可以返回一个数组元素的键名、键值和下一个键。下面我们将详细介绍each()函数的具体用法。

2. each()函数的用法

2.1 语法:

each()函数的语法格式如下:

each(array $array): array|false

其中参数array是要遍历的数组,返回值是一个数组或false。如果数组中有可返回的元素则返回包含键名、键值、下一个元素键名的数组。如果已经遍历到数组尾部,返回false。

2.2 使用each()函数遍历数组:

下面我们来看一个使用each()函数遍历数组的实例:

$arr = array("a"=>"apple","b"=>"banana","c"=>"cherry");

while($fruit = each($arr)){

echo $fruit['key']."--".$fruit['value']."
";

}

执行以上代码,会输出:

a--apple

b--banana

c--cherry

可以看到,使用each()函数可以很方便地遍历数组,并输出数组中的每一个元素及其键名。

2.3 返回值为false:

在使用each()函数遍历数组时,当已经遍历到数组的末尾时,each()函数会返回false。下面我们来看一个实例:

$arr = array("a"=>"apple","b"=>"banana","c"=>"cherry");

while($fruit = each($arr)){

echo $fruit['key']."--".$fruit['value']."
";

}

if(each($arr) === false){

echo "数组已经遍历完成";

}

输出结果为:

a--apple

b--banana

c--cherry

数组已经遍历完成

可以看到,在使用each()函数遍历数组后,再次使用each()函数,返回false,说明已经遍历完成。

2.4 返回值为数组:

使用each()函数遍历数组时,如果该元素可以返回,则返回一个包含键名、键值、下一个元素键名的数组。下面我们来看一个实例:

$arr = array("a"=>"apple","b"=>"banana","c"=>"cherry");

$fruit = each($arr);

echo $fruit['key']."---".$fruit['value']."---".$fruit[0];

echo "
";

$fruit = each($arr);

echo $fruit['key']."---".$fruit['value']."---".$fruit[0];

echo "
";

$fruit = each($arr);

echo $fruit['key']."---".$fruit['value']."---".$fruit[0];

echo "
";

执行以上代码,会输出:

a---apple---b

b---banana---c

c---cherry---

可以看到,使用each()函数遍历数组时,返回一个包含键名、键值、下一个元素键名的数组。

3. foreach()与each()的区别

在PHP中,还有一个强大的遍历数组的函数,就是foreach()函数。那么,foreach()和each()有何区别呢?下面我们来对比一下:

each()函数 foreach()函数
只能遍历关联数组 可以遍历关联数组、索引数组和多维数组
每次只能返回一个元素,并将指针向后移一位 可以一次性返回所有元素,不影响数组指针
每次返回的是一个包含键名、键值、下一个元素键名的数组 每次返回的是一个拥有当前元素键名/值的变量

因此,在遍历关联数组时,each()函数更加高效方便,而在遍历索引数组和多维数组时,foreach()函数更加灵活易用。

4. 总结

在PHP中,each()函数是一个非常实用的遍历数组的函数,它可以方便、快捷地遍历关联数组,并提供了返回数组元素键名、键值和下一个键的功能。当然,对于索引数组和多维数组,使用foreach()函数会更加灵活和易用。无论是使用each()函数还是foreach()函数,都需要根据具体的数组来决定使用哪一个函数。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签