• php中,使用回调函数处理数据的函数


    array_walk、array_map、array_filter 的用法

    异同点
     array_filter() 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时,返回过滤后的数组
     array_map() 重点在于遍历一个数组或多个数组的元素,返回一个新的数组
     array_walk() 重点在于遍历数组进行某种操作

     array_filter() 和 array_walk()对一个数组进行操作,数组参数在前,函数参数在后
     array_map() 可以处理多个数组,因此函数参数在前,数组参数在后,可以根据实际情况放入多个数组参数

     1)array_walk 用法

      循环数组,回调处理(并不修改数组元素的值,而是跳出去做其他的事情[回调的定义]) 

    $arr = [
        ['name' => 'A', 'age' => 18],
        ['name' => 'B', 'age' => 11],
    ];
     array_walk($arr, function ($value) {
         //做其他的逻辑处理,不对数组元素进行处理
         echo  "name:" . $value['name'] . ', age:' . $value['age'] . "
    ";
     });

      循环数组,对数据的元素进行处理

    $arr = [
        ['name' => 'A', 'age' => 18],
        ['name' => 'B', 'age' => 11],
    ];
    //使用引用
     array_walk($arr, function (&$value) {
        //修改元素的 age  值
        $value['age'] = $value['age'] - 1;
        
     });

      2)array_map()

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

    $arr1 = [1,2,3,4,5];
        $arr2 = [6,7,8,9,10];
        
        //函数写前面,数组参数写后面
        $new_arr = array_map(function($val1,$val2){
           return $val1 + $val2;
        },$arr1,$arr2);

      3)array_filter()

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

    $arr = ['a','b',1,2,3];
        
        $new_arr = array_filter($arr,function($val){
            return is_numeric($val);
        });

      4)array_walk_recursive() 函数对数组中的每个元素应用回调函数。【多维数组】

      需要把多维数组里面的所有键值和键名都取出来。

    array_walk_recursive($contentArr, function ($value, $key) use (&$result) {
            array_push($result, $key);
        });

    参考:https://www.cnblogs.com/zhenbianshu/p/6063340.html

  • 相关阅读:
    两台电脑之间怎么用一根网线传输数据
    IDEA的几个常用配置,日常开发必备
    idea 配置Maven
    IDEA2019 安装和激活
    HTML中各类空格占位符
    jackSon注解-- @JsonInclude 注解不返回null值字段
    Vscode配置Eslint
    Tomcat中容器是什么以及容器与容器之间的数量关系。
    请求是如何传递给StandardEngine的?
    Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。
  • 原文地址:https://www.cnblogs.com/sien6/p/13954198.html
Copyright © 2020-2023  润新知