首页 > 其他 > 详细

array_map,array_filter,array_walk区别

时间:2015-12-04 12:16:45      阅读:322      评论:0      收藏:0      [点我收藏+]

这几个方法都有遍历数组,操作的过程。 很容易搞混。尤其很多人养成的编程习惯都是使用foreach来循环遍历。。

就举个简单例子。 

 

 

$a = array(
 0,1,2,3,4,5,6,7,8,9
);

function filter($v){
   if ($v == 0){
      return true;
   }
   return false;
}


function map($v){
   return $v == 0 ? 0 : 10;
}

function walk($v, $k){
   echo $k , ‘=>‘, $v ,‘\r\n‘;
}


$b = array_filter($a, ‘filter‘);
$c = array_map(‘map‘, $a);

print_r($b);
print_r($c);


array_walk($a, ‘walk‘);

 

 

Array
(
[0] => 0
)

 


Array
(
[0] => 0
[1] => 10
[2] => 10
[3] => 10
[4] => 10
[5] => 10
[6] => 10
[7] => 10
[8] => 10
[9] => 10
)

 

 

0=>0         1=>1         2=>2         3=>3         4=>4         5=>5         6=>6         7=>7         8=>8         9=>9

 

 

显然,array_filter,函数的作用就是过滤原数组,在过滤函数中,返回true的,才会保留。结果数组通常元素个数就少于了原数组个数(过滤了的话

array_map,函数作用是对原数组元素进行一一map映射,元素个数仍然是原来的。map函数中,直接返回的是键值了。

array_walk,这个函数,walk函数接收key和value两个参数,直接在walk函数中处理业务。

 

简单的区别就是这样,详细参考手册。。

 

array_map,array_filter,array_walk区别

原文:http://www.cnblogs.com/firstForEver/p/5017286.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!