PHP array_map 和 array_walk 有什么区别?

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

如题

摈弃世俗浮躁,追求技术精湛
Summer
讨论数量: 4

遍历自定义函数。map返回值,walk返回boolean;

2年前 评论

这两个函数都是遍历数组为数组的每个元素应用回调函数,区别如下

  1. array_map返回经过处处理后的数组,array_walk会直接修改原数组再返回布尔值
  2. array_map可以同时处理多个数组
  3. array_walk可以提供额外参数给回调函数使用,array_map不行
2年前 评论

返回值:

array_map: 返回一个新数组,该数组的元素是通过回调函数对原数组每个元素的处理结果得到的。 array_walk: 不返回新数组,而是直接修改原始数组。 参数传递:

array_map: 接受一个回调函数和一个或多个数组作为参数。回调函数对每个数组的相应元素进行处理。 array_walk: 接受一个回调函数和一个数组作为参数。回调函数对数组的每个元素进行处理,并且可以通过引用修改原数组。 使用场景:

array_map: 适用于需要将一个数组的每个元素映射到一个新的值,而不修改原始数组的情况。 array_walk: 适用于需要在处理数组的同时修改原始数组的情况。由于 array_walk 可以通过引用修改数组元素,它更适用于一些需要在原数组上执行修改的情况。

$array = [1, 2, 3, 4]; $newArray = array_map(function($value) { return $value * 2; }, $array);

// $newArray 现在是 [2, 4, 6, 8] // $array 仍然是 [1, 2, 3, 4] $array = [1, 2, 3, 4]; array_walk($array, function(&$value) { $value *= 2; });

// $array 现在是 [2, 4, 6, 8]

2个月前 评论
lijizheng (作者) 2个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!