欢迎访问宙启技术站
智能推送

PHP的array_map函数:如何对数组中的每个元素应用一个回调函数

发布时间:2023-06-23 07:32:38

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()函数是一种非常强大的用于迭代数组和应用回调函数的方法,可以用于处理很多实际情况下的问题。它使得我们可以更轻松和高效地对数组中的元素进行处理。