使用PHP中的array_map函数来对数组中的每个元素应用函数。
array_map()函数是PHP中的一个数组函数,它可以对指定数组中的每个元素都应用一个回调函数,然后将函数返回的结果存储在一个新数组中。
array_map()函数的语法如下:
array array_map ( callable $callback , array $array1 [, array $... ] )
参数说明:
- callback:必需,要对数组中的每个元素进行应用的回调函数。
- array1:必需,要处理的数组。
- ...:可选,其他要处理的数组。可以传入多个数组,但注意数组的长度应该相同,否则会产生警告。
回调函数为 array_map() 的第一个参数,它接收数组中的值作为参数,并经过处理后返回。
下面是一个示例,展示如何使用 array_map() 函数将给定数组中的所有元素转为大写。
// 定义一个回调函数
function convertToUpper($value){
return strtoupper($value);
}
// 原始数组
$fruits = array("apple", "banana", "cherry");
// 使用 array_map() 函数将原始数组中的每个元素都应用回调函数,并将结果存储在新数组中
$upperCaseFruits = array_map("convertToUpper", $fruits);
// 打印结果
print_r($upperCaseFruits);
以上代码输出如下结果:
Array
(
[0] => APPLE
[1] => BANANA
[2] => CHERRY
)
在这个例子中,我们定义了一个回调函数 convertToUpper(),它将传入的参数转换为大写字母。然后,我们使用 array_map() 函数将 convertToUpper() 函数应用到原始数组 $fruits 的每个元素上,并将结果保存在新的数组 $upperCaseFruits 中。
除了传入自定义的回调函数之外,我们还可以使用匿名函数作为回调函数,如下所示:
$upperCaseFruits = array_map(function($value){
return strtoupper($value);
}, $fruits);
上述代码与之前的示例代码具有相同的功能,只是使用了匿名函数作为回调函数。
需要注意的是,如果要对多个数组应用相同的回调函数,可以在 array_map() 函数的参数列表中传入它们,如下所示:
function concatenate($value1, $value2){
return $value1 . $value2;
}
$arr1 = array("Hello", "Hi", "Hey");
$arr2 = array("World", "PHP", "There");
$result = array_map("concatenate", $arr1, $arr2);
print_r($result);
以上代码输出如下结果:
Array
(
[0] => HelloWorld
[1] => HiPHP
[2] => HeyThere
)
在这个例子中,我们定义了一个回调函数 concatenate(),它将传入的两个参数拼接在一起。然后,我们通过将两个数组 $arr1 和 $arr2 传递给 array_map() 函数来应用该回调函数,并将结果保存在新的数组 $result 中。
以上就是使用 PHP 中的 array_map() 函数来对数组中的每个元素应用函数的基本用法。希望对你有所帮助!
