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 + 1array_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 . $letterarray_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博客