面试题 / 9 / 4 / 创建于 3年前
如题
遍历自定义函数。map返回值,walk返回boolean;
这两个函数都是遍历数组为数组的每个元素应用回调函数,区别如下
返回值:
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]
我要举报该,理由是:
遍历自定义函数。map返回值,walk返回boolean;
这两个函数都是遍历数组为数组的每个元素应用回调函数,区别如下
返回值:
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]