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
";
}array_walk_recursive($fruits, 'test_print');
array_map()
函数中的闭包只能传入 value值
classdemo {public functionmap($arr) {array_map([$this,"aa"],$arr);
}public function aa($v) {echo "
";print_r($v);
}
}
$arr 传入的数据
$this 调用这个class
$v 传入的数组
-----------------------------------------------------
另一种写法:
array_map(function($v) use(&$data) {return $data;
},$arr);
use()