有经验的程序员会经常使用着两个函数,因为它们能快速处理数组,且看它们的区别:
array_map() 返回用户自定义函数作用后的数组。
array_walk() 对数组中每个函数使用回调函数,返回bool值。
看看下面的例子就知道了:

<?php
/**
*@link http://www.phpddt.com
*/
$array = array('AAA', 'bbb');
$map_array = array_map('strtolower', $array);
print_r($map_array);
print_r($array);
//如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value
function array_walk_func(&$v, $k){
$v = strtolower($v);
}
$walk_array = array_walk($array, 'array_walk_func');
print_r($walk_array);
print_r($array);

打印结果如下:

Array
(
  [0] => aaa
  [1] => bbb
)
Array
(
  [0] => AAA
  [1] => bbb
)
1
Array
(
  [0] => aaa
  [1] => bbb
)

很明显可以看到array_map()的回调函数有返回值,array_walk的回调函数没有返回值。