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 )// 写法2function 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博客