array_map
是一个 PHP 函数,用于将回调函数应用于给定数组的每个元素。array_map
接受两个或更多参数:第一个参数是回调函数,第二个参数是要操作的数组,其他参数是可选的额外数组。
函数原型:
array array_map ( callable $callback, array $array1 [, array $... ] ) : array
参数:
$callback
:回调函数,用于操作数组元素。$array1
:要操作的第一个数组。$...
:可选的额外数组。
返回值:
返回一个新数组,其中每个元素都是通过回调函数处理的。
示例1:运算
假设你有一个数组,其中包含一些数字,你想将这些数字都加上 1。你可以使用 array_map
函数和一个匿名函数来实现这个功能:
$numbers = [1, 2, 3, 4, 5];
$result = array_map(function ($number) {
return $number + 1;
}, $numbers);
print_r($result);
输出:
Array
(
[0] => 2
[1] => 3
[2] => 4
[3] => 5
[4] => 6
)
乘法:
function multiplyByTwo($value) {
return $value * 2;
}
$array = [1, 2, 3, 4, 5];
$result = array_map('multiplyByTwo', $array);
print_r($result);
// 输出: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
在这个例子中,array_map
函数将匿名函数应用于 $numbers
数组的每个元素。匿名函数接受一个参数 $number
,并返回 $number + 1
。array_map
函数返回一个新数组,其中每个元素都加上了 1。
示例2:处理多个数组
你还可以使用 array_map
函数将多个数组组合在一起。例如,假设你有两个数组,一个包含数字,另一个包含字母,你想将它们组合成一个新数组,其中每个元素都是一个数字和一个字母的组合。你可以使用 array_map
函数和一个匿名函数来实现这个功能:
$numbers = [1, 2, 3];
$letters = ['a', 'b', 'c'];
$result = array_map(function ($number, $letter) {
return $number . $letter;
}, $numbers, $letters);
print_r($result);
输出:
Array
(
[0] => 1a
[1] => 2b
[2] => 3c
)
写法2:
function addAndMultiply($value1, $value2) {
return $value1 + $value2 * 2;
}
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = array_map('addAndMultiply', $array1, $array2);
print_r($result);
// 输出: Array ( [0] => 7 [1] => 10 [2] => 13 )
在这个例子中,array_map
函数将匿名函数应用于 $numbers
和 $letters
数组的每个元素。匿名函数接受两个参数 $number
和 $letter
,并返回 $number . $letter
。array_map
函数返回一个新数组,其中每个元素都是一个数字和一个字母的组合。
示例3:重组
// 提取所需的列
$result = array_map(function ($item) {
return [
'id' => $item['parent']['pid'] . ',' . $item['pid'] . ',' . $item['id'],
'name' => $item['name']
];
}, $filteredList);
示例4:转大写
// 写法1
$input = ['apple', 'banana', 'cherry'];
$output = array_map(function($fruit) {
return strtoupper($fruit);
}, $input);
print_r($output);
// 输出:Array ( [0] => APPLE [1] => BANANA [2] => CHERRY )
// 写法2
function toUpperCase($value) {
return strtoupper($value);
}
$array = ['apple', 'banana', 'cherry'];
$result = array_map('toUpperCase', $array);
print_r($result);
// 输出: Array ( [0] => APPLE [1] => BANANA [2] => CHERRY )
示例5:配合函数使用
array_map('trim', explode(',', $field));
array_map('strtolower', $arr);
相关函数:配合使用
-
array_reduce():【PHP】函数array_reduce()使用场景-CSDN博客