【PHP】函数array_map():将回调函数应用于给定数组的每个元素

发布时间:2023年12月29日

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 )

// 写法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);

相关函数:配合使用


文章来源:https://blog.csdn.net/q8688/article/details/135294969
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。