欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

PHP array_map()和array_walk的区别

shiping1 的头像

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


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

打印结果如下:

  1. Array
  2. (
  3. [0] => aaa
  4. [1] => bbb
  5. )
  6. Array
  7. (
  8. [0] => AAA
  9. [1] => bbb
  10. )
  11. 1
  12. Array
  13. (
  14. [0] => aaa
  15. [1] => bbb
  16. )

很明显可以看到array_map()的回调函数有返回值,array_walk的回调函数没有返回值。
来自  http://www.phpddt.com/php/array_map_and_array_walk.html

普通分类: