PHP array_walk_recursive 和 array_map 用法及区别 以及在其中使用闭包(匿名函数)use()


array_walk_recursive ()

函数中的闭包函数可以带两个参数 ,第一个为value, 第二个为key

$data = [];

array_walk_recursive
($value,function($v,$k) use(&$data) { $data[] = $v; });

return $data;

$value (array)  穿进来的数组

$v 循环传给闭包函数的 value 值

$k 循环传给闭包函数的 key 值

use () 连接闭包和外界变量 其作用是从父作用域继承变量

&$data  闭包函数外的变量,传入到闭包中,用来传值

----------------------------------------------------------------------------------------------------------

另一种写法:

$sweet = array(
  'a' => 'apple',
  'b' => 'banana'
);

$fruits = array(

'sweet' => $sweet,
  'sour' => 'lemon' ); function test_print($item, $key) { echo " $key holds $item <br/>"; } array_walk_recursive($fruits, 'test_print');

参考地址 :https://www.jb51.net/article/97402.htm

 

 

 

array_map()

函数中的闭包只能传入 value值

class demo {

    public function map($arr) {
        array_map([$this,"aa"],$arr);
    }

    public function aa($v) {
       echo "<pre>";
       print_r($v);
    }

}

$arr  传入的数据

$this 调用这个class

$v 传入的数组

-----------------------------------------------------

另一种写法:

array_map(function($v) use(&$data) {

        return $data;

},$arr);

参考地址 : https://www.cnblogs.com/lbcheng/p/7813888.html

 

 

 

use()

参考地址 :https://blog.csdn.net/echojson/article/details/80633118

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM