📅  最后修改于: 2023-12-03 15:33:40.557000             🧑  作者: Mango
array_map
是PHP中内置的一个非常有用的函数,它可以对一个数组中的每个元素都执行回调函数,并返回一个新的数组,新数组中的元素是回调函数返回的值。下面介绍一些array_map
的用法和注意事项。
array_map
的语法如下:
array_map ( callable $callback , array ...$arrays ) : array
参数解释:
callback
:回调函数,可以是函数名的字符串,也可以是一个匿名函数。回调函数接收的参数个数为传入的数组个数,顺序与array_map
中传入的数组顺序一致。如果数组个数不一致,较短的数组将用null
填充。
arrays
:一个或多个数组,将对这些数组中的元素进行操作。如果有多个数组,它们的元素将按顺序传递给回调函数。
返回值:一个新的数组,其中的元素是回调函数返回值组成的集合。
下面展示一些array_map
的示例。
$fruits = array("apple", "banana", "orange");
$new_fruits = array_map('strtoupper', $fruits);
print_r($new_fruits);
输出:
Array
(
[0] => APPLE
[1] => BANANA
[2] => ORANGE
)
解释:strtoupper
是一个内置的函数,将字符串转成大写。array_map
将strtoupper
作为回调函数传入,对数组$fruits
中的每个元素都执行了strtoupper
,并返回了一个新的数组$new_fruits
。
$a = array(2, 4, 6);
$b = array(1, 3, 5);
$c = array_map(function($x, $y){ return $x + $y; }, $a, $b);
print_r($c);
输出:
Array
(
[0] => 3
[1] => 7
[2] => 11
)
解释:这里使用了匿名函数作为回调函数,对数组$a
和$b
中的元素依次执行了相加操作,并返回了一个新的数组$c
。
回调函数的参数数量必须和传入array_map
的数组数量一致。
如果回调函数返回了null
,那么对应的元素在新数组中会丢失。
如果传入了一个空数组,array_map
会返回一个空数组。如果没有传入数组,则会报错。
如果传入的数组中有null
元素,那么回调函数将不会被执行。
如果传入回调函数的参数是引用类型,它们会被修改。
array_map
是一个非常实用的函数,它可以减少写重复代码的情况。当你需要对一个数组进行批量操作时,array_map
可以帮助你快速地完成。同时,使用回调函数,你可以对数组中的元素进行任何你希望执行的较为复杂的操作。