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

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);

相关函数:配合使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzoood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值