array_map和array_walk都是对数组的每个元素调用相关函数进行处理。
bool array_walk ( array &$array , callable $funcname );
array array_map ( callable $callback , array $arr1 );
不同的是,array_walk直接将函数处理的结果反映到数组,而array_map是返回一个处理完成的数组。
应该注意array_walk调用的函数参数也应该是引用,array_map调用的函数也应该有相应返回值。
<?php
$arr = range(5, 15);
function demo(&$i){ //引用参数
$i += 10;
}
array_walk($arr,'demo'); //没有返回值
var_dump($arr);
<?php
$arr = range(5, 15);
function demo($i){
return ($i+10); //函数返回
}
$arr = array_map($arr,'demo'); //返回数组
var_dump($arr);