使用PHP的array_map函数对数组中的每个元素应用一个函数
array_map() 函数是 PHP 内置的一个数组函数,用于将指定的函数作用于给定数组的每个元素,并返回一个新数组,新数组的元素是原数组经过处理后的结果。
array_map() 函数的语法为:
array_map(callback, arr1 [, arr2, ...])
其中,callback 是一个用户自定义函数,用于作用于每个数组的元素;arr1 到 arrN 是待处理的数组。
假设有以下数组 arr 数组如下:
$arr = [1, 2, 3, 4, 5];
现在要对数组 arr 中的每个元素应用一个函数,并将结果保存到新数组 newArr 中。可以使用 array_map() 函数来实现:
function square($num) {
return $num * $num;
}
$newArr = array_map("square", $arr);
上述代码中,定义了一个名为 square() 的函数,用于计算一个数的平方。然后使用 array_map() 函数,将 square() 函数作用于 $arr 数组的每个元素,并将结果保存到 $newArr 数组中。
最终结果为 $newArr 数组:
$newArr = [1, 4, 9, 16, 25];
这样,原数组中的每个元素都被平方后,得到了一个新的数组。
array_map() 函数还可以同时处理多个数组。假设现在有两个数组 arr1 和 arr2:
$arr1 = [1, 2, 3]; $arr2 = [4, 5, 6];
想要将这两个数组的元素相加,并保存到新数组 $sumArr 中。可以修改上述示例代码如下:
function sum($num1, $num2) {
return $num1 + $num2;
}
$sumArr = array_map("sum", $arr1, $arr2);
在这段代码中,定义了一个名为 sum() 的函数,用于对两个数进行相加。然后使用 array_map() 函数,将 sum() 函数作用于 $arr1 和 $arr2 数组的每个元素,并将结果保存到 $sumArr 数组中。
最终结果为 $sumArr 数组:
$sumArr = [5, 7, 9];
这样,两个数组的对应元素相加后,得到了一个新的数组。
总结:
array_map() 函数是 PHP 中一个非常实用的数组函数,用于将一个函数作用于给定数组的每个元素,并返回一个新数组。可以通过 array_map() 函数,对数组中的每个元素应用一个函数,实现对数组的批量处理。
