PHP的array_map函数:如何对数组中的每个元素应用一个回调函数
array_map函数是PHP里面一个非常实用的函数,其主要功能是对数组中的每个元素应用一个回调函数,它的返回值是一个新的数组,其中每个元素都是原始数组中对应元素应用callback后的返回值。
array_map()是用于迭代数组的函数,这个函数接受一个或多个数组,并将每个元素传递给回调函数,回调函数处理元素后并返回处理后的结果,最后返回一个新的数组。
语法:
array array_map ( callable $callback , array $array1 [, array $... ] )
其中,callback参数是一个可调用的函数,用来对数组的每个元素进行处理,该函数的返回值会填充到返回数组的相应位置。
下面是一个简单的例子:
function add_echo($n) {
return $n." echo";
}
$arr = array("hey","hello","there");
$new_arr = array_map("add_echo", $arr);
print_r($new_arr);
这个例子中,我们定义了一个简单的函数add_echo,接受一个参数并将其合并到一个字符串 " echo" 中,下一步我们创建了一个包含一些字符串的数组,将这个数组和add_echo函数传递给array_map函数,最终生成了一个新数组,其中每个元素都被添加了字符串 " echo"。
输出结果:
Array
(
[0] => hey echo
[1] => hello echo
[2] => there echo
)
在这个例子中,我们使用了简单的字符串操作作为callback函数,但在实际的程序中,我们可以使用复杂的处理逻辑,比如日期格式化、计算、过滤等。
下面是一个更实际的例子:将一个原数组中的所有数字都加1。
function add_one($n) {
return $n + 1;
}
$old_arr = [1,2,3,4,5];
$new_arr = array_map("add_one", $old_arr);
print_r($new_arr);
输出结果:
Array
(
[0] => 2
[1] => 3
[2] => 4
[3] => 5
[4] => 6
)
在上面的例子中,我们定义了一个叫做 "add_one()" 的函数,该函数将传入的数字加1,将这个函数和一个包含了数字的数组作为参数传递给array_map()函数。
最后,我们打印输出了新数组中的每个元素。
array_map()函数还可以同时应用于多个数组,下面是一个例子:
function addition($a, $b) {
return $a + $b;
}
$a1 = [1,2,3];
$a2 = [4,5,6];
$new_arr = array_map("addition", $a1, $a2);
print_r($new_arr);
输出结果:
Array
(
[0] => 5
[1] => 7
[2] => 9
)
在这个例子中,我们定义了 "addition()" 函数,接受两个参数并返回它们的和,然后将两个数组 $a1 和 $a2 作为参数传递给 array_map() 函数,最后得到的新数组将包含它们的元素同时相加的结果。
总之,array_map()函数是一种非常强大的用于迭代数组和应用回调函数的方法,可以用于处理很多实际情况下的问题。它使得我们可以更轻松和高效地对数组中的元素进行处理。
