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()函数,都需要根据具体的数组来决定使用哪一个函数。