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

就举个简单例子。

$a = array(
0,1,2,3,4,5,6,7,8,9
); function filter($v){
  return $v == 0 ? true :false;
}
function map($v){
return $v == 0 ? 0 : 10;
} // array_walk函数中,如果想直接作用于数组中的值,可以把$v,写成引用形式&$v
function walk($v, $k){
echo $k , '=>', $v ,'\r\n';
} $b = array_filter($a, 'filter');
/**
// 也可以把回调函数,放在filter里。
$b = array_filter($a, function(){
return $v == 0 ? true :false;
});
*/ // array_map 函数中的参数顺序,和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是遍历数组元素调用函数,不只是可以调用自定义函数,也可以调用内置函数。

比如希望对一个数组的所有元素去左右空格。

可以foreach,再trim。

当然可以使用array_map

$re = array_map('trim', $arr);

-

array_map,array_filter,array_walk区别的更多相关文章

  1. 【php学习】array_map,array_walk,array_filter的区别

    array_map(function($v){return $v+1;}, $array); array_walk($array, function($v, $k){...}); array_filt ...

  2. array_map、array_walk、array_filter三个函数的区别

    array_walk --- 使自定的函数能处理数组的每个元素 bool array_walk ( array &array, callback funcname [, mixed userd ...

  3. array_filter、array_map、array_walk解释

    /** * array_filter 用回调函数处理数组中的各个元素, * 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时, * 如果返回了false,那么这个元素将会被过滤掉.PS:保持了 ...

  4. array_map、array_walk、array_reduce

    不同情境下替换foreach,且效果更佳 array_map  遍历原数组,array_map()参数中有几个数组,自定义函数就接收几个参数, 在每个值上进行自定义函数处理,具有返回值,需要一个新数组 ...

  5. php array_map与array_walk使用对比

    array_map(): 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调函 ...

  6. php中array_map和array_walk的使用对比_php技巧

    一.array_map() 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调 ...

  7. php array_map array_filter sort

    array_map — Applies the callback to the elements of the given arrays (处理映射) array_filter — Filters e ...

  8. php中array_map和array_walk的使用对比

    一.array_map() 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调 ...

  9. PHP 高级工程面试题汇总

    PHP高级工程面试题汇总(2018.05) 1.给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形. 勾股定理,矩形是对角线相等的四边形 ...

随机推荐

  1. PDO异常处理

    PDO提供了三种处理错误的方式 PDO::ERRMODE_SILENT:静默模式(默认) PDO::ERRMODE_WARNING:警告模式 PDO::ERRMODE_EXCEPTION:异常模式 示 ...

  2. ubuntu 18.04 设置固定ip

    # This file is generated from information provided by # the datasource.  Changes to it will not pers ...

  3. 【读书笔记】iOS-网络-使用推送通知

    一,本地通知 本地通知有64位的最大限制.虽然,你依然可以调度通知,不过到到达的通知数被限定为接近64个,并且按照fireDate的顺序排序,系统会忽略掉其余的通知.这意味着如果现在有64个调用的本地 ...

  4. 华为5G折叠屏幕适配

    华为5G折叠屏幕的发布,迎来新的一个设备——移动端的折叠设备华为Max;华为Max设备分辨率有以下几种 8.0,6.8,6.38,这三种场景下页面展示都是不一样的表现,需要我们在开发中注意监听屏幕变化 ...

  5. Dynamics 365Online Server-Side OAuth身份认证

    在上篇演示了在html页面中通过调用online的OAuth身份验证后再通过web api取10条客户数据并展示,本篇继续讲述如何在server-side程序中调用online的OAuth认证再通过w ...

  6. docker 开发常用命令总结

    Docker 常用命令总结,镜像下载,到docker容器创建,常用docker命令的 增删查 1.镜像下载,从hub.docker.com中下载最新版本的postgres docker pull po ...

  7. CAT3 SAP tcode - Time Sheet: Display Times

    CAT3 SAP tcode - Time Sheet: Display Times CAT3 (Time Sheet: Display Times) is a standard SAP transa ...

  8. TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model

      TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model Checkmate is designed to be a simple drop-i ...

  9. AJAX的基本操作

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和 ...

  10. Vue -- vue-cli(vue脚手架) npm run build打包优化

    这段时间公司新项目立项,开发组选用 Vue2.0 进行开发.当然也就一并用到 vue cli 进行自动化构建.结果在基础版本开发完成后,用 npm run build 命令打包上线时,发现以下几个问题 ...