zoukankan      html  css  js  c++  java
  • array_map、array_walk、array_filter三个函数的区别

    array_walk --- 使自定的函数能处理数组的每个元素

    bool array_walk ( array &array, callback funcname [, mixed userdata] )

    如果成功则返回 TRUE,失败则返回 FALSE

    语法 : 将用户自定义函数 funcname 应用到 array 数组中的每个单元。典型情况下 funcname 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname

    array_walk() 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。

    array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

    回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

    array_walk与array_map 的不同

     map    主要是为了得到你的回调函数处理后的新数组,要的是结果。

     walk   主要是对每个参数都使用一次你的回调函数,要的是处理的过程。

     walk   可以认为提供额外参数给回调函数,map不可以

     walk   主要是要对数组内的每个值进行操作,操作结果影响原来的数组

     map    主要是对数组中的值进行操作后返回数组,以得到一个新数组

     walk   可以没有返回值 map要有,因为要填充数组

     

     

    array_map:

     

     

    Array_map作用在更多的数组上面

     

    Array_map可以很容易的通过用null作为回调函数来实现构造一个新的数组

     

    array_filter() 函数用回调函数过滤数组中的值。

    该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

     

    如果没有提供 callback 函数,array_filter() 将删除 input 中所有等值为 FALSE 的条目。

     

    array_walk:

    array_walk()返回布尔值,如果回调函数需要直接作用于数组中的值,则给回调函数的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。此函数可以同时获取到数组的key和value。

    array_map:

    array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

    简单点说就是回调函数对数组中每个值都会产生最终影响,并在调用array_map的返回值中体现。

    此函数可以同时对多个数组进行操作。并最终合并为一个数组(每个数组根据下标平行对其到同一个二维数组中)。


    array_filter:

    此函数是专门用于过去数组中的元素,简单点说就是对数组中的经过回调函数判断的value进行过滤,并通过array_filter()函数返回处理后的数组。

  • 相关阅读:
    07: mysql锁和事物隔离
    06: mysql索引查找原理及调优
    06: 字典、顺序表、列表、hash树 实现原理
    05:树结构
    02:MongoDB操作
    01:MongoDB基础
    02: CMDB设计思路
    二级制包安装Tomcat 与 RPM包安装Tomcat
    Docker的volume机制实现容器数据的持久性存储
    配置docker的私有仓库
  • 原文地址:https://www.cnblogs.com/Yirson/p/7445461.html
Copyright © 2011-2022 走看看