数组遍历方法: mapfilterforEach

Posted handsomepp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组遍历方法: mapfilterforEach相关的知识,希望对你有一定的参考价值。

区别

  • map 叫映射,可以重新赋值,拼接用+号,值+另外的值得新值
  • filter 叫筛选数组, 可以重新赋值,用><=号,比较筛选值
  • forEach 叫跟for循环一样, 不可以重新赋值

PHP遍历数组的几种方法

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法
 
 
PHP中遍历数组有三种常用的方法: 
一、使用for语句循环遍历数组; 二、使用foreach语句遍历数组; 三、联合使用list()、each()和while循环遍历数组。 
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。 
一、使用for语句循环遍历数组 
值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。 
实例代码如下: 

 
<?php 
$arr = array(\'http://www.cnblogs.com/\',\'博客园\',\'PHP教程\'); 
$num = count($arr); 
for($i=0;$i<$num;++$i){ 
echo $arr[$i].\'<br />\'; 
} 
?> 
 

注释:上例代码中我们先计算出数组$arr中元素的个数,然后才使用在for语句,这样做很高效的。因为如果是for($i=0;$i< 
count($arr);++$i)的话,每次循环都会计算数组$arr中元素的个数,而使用上面的方式可以减去这种开销。使用++$i也是为了提高效率,前面有文章我们提到过,建议大家再看看。 

上面代码的输出结果为: 
http://www.jb51.net 
脚本之家 
PHP教程 


二、使用foreach语句遍历数组 

使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下: 
第一种方式: 

foreach(array_expression as $value){ 
//循环体 

实例代码:

 
<?php 
$arr = array(\'http://www.cnblogs.com/\',\'博客园\',\'PHP教程\'); 
foreach($arr as $value){ 
echo $value.\'<br />\'; 
} 
?> 
 

每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。 


第二种方式: 
foreach(array_expression as 
$key=>$value){ 
//循环体 

实例代码:

 
<?php 
//定义数组 
$arr = array(\'http://www.cnblogs.com/\',\'博客园\',\'PHP教程\'); 
foreach($arr as $k=>$v){ 
echo $k."=>".$v."<br />"; 
} 
?> 
 

三、联合使用list()、each()和while循环遍历数组 

each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。 

list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。 

实例代码:

 
<?php 
//定义循环的数组 
$arr = array(\'http://www.cnblogs.com/\',\'博客园\',\'PHP教程\'); 
while(list($k,$v) = each($arr)){ 
echo $k.\'=>\'.$v.\'<br />\'; 
} 
?>
 

输出结果为: 
website=>http://www.cnblogs.com/
webname=>PHP程序员 


总结:上述三种循环遍历数组的方法中建议大家使用foreach语句循环遍历数组,效率更高。

以上是关于数组遍历方法: mapfilterforEach的主要内容,如果未能解决你的问题,请参考以下文章

js遍历数组some()方法

iOS中遍历数组的方法

JS数组循环遍历常用的9种方法

es6 reduce方法是遍历数组吗

数组的九种遍历方法

PHP 数组遍历方法大全(foreach,list,each)