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

news/2024/12/19 16:23:15/

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

相关函数:配合使用


  • array_reduce():【PHP】函数array_reduce()使用场景-CSDN博客


http://www.ppmy.cn/news/1284980.html

相关文章

LVM逻辑卷与扩容

目录 一.LVM: 1.什么是LVM: 2.LVM的基本核心组件: 3.LVM的基本命令: 二.逻辑卷的创建: 第一步,我们先要为虚拟机添加硬盘 然后我们要添加依赖包 然后我们要进行磁盘分区 再添加好分区后&#xff0…

Python 人物相关性分析-字符串问题(来源 lanqiao.cn:198)

题目描述 小明正在分析一本小说中的人物相关性。他想知道在小说中 Alice 和 Bob 有多少次同时出现。 更准确的说,小明定义 Alice 和 Bob“同时出现”的意思是:在小说文本 中 Alice 和 Bob 之间不超过 K 个字符。 例如以下文本: This is a story about Alice and Bob…

ndr rule对绕线的影响

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 innovus:set_ccopt_property用法备忘录 ICC2:常用命令备忘录 最近经手一个12nm的项目,需要自己搭建环境,有官方简易flow做基础࿰

鸿蒙APP的代码规范

鸿蒙APP的代码规范是为了确保代码质量、可读性和可维护性而定义的一系列规则和标准。以下是一些建议的鸿蒙APP代码规范,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 代码风格: 采用…

基于 Sentry 的前端监控系统搭建(Linux)

一、前言 随着技术这几年的发展与沉淀,线上数据指标监控也变得尤为重要,研发人员和运营人员需要对线上的产品指标有所感知,同时风险也需要及时暴露,很多公司开始自建监控系统,但对于一些定制化要求不是特别高的团队&a…

记一次redis内存没满发生key逐出的情况。

现象: 从监控上看,redis的内存使用率最大是80%,但是发生了key evicted 分析: 原因1、可能是阿里云监控没抓取到内存100%监控数据。 阿里控制台监控监控粒度是5秒。 内存使用率的计算方法。 used_memory_human/maxmemory 原因2、…

postman使用-04响应

文章目录 响应响应界面说明Pretty:格式化显示,以便查看Raw:不进行任何处理,显示响应数据的原始格式Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面…

node实现对git仓库的管理

一、项目背景 一份代码,发布多个小程序。想让技术支持部通过脚本自己获取代码,并通过脚本自动提交到客户的小程序后台。他们自行发布。 现已注册第三方平台,开发人员通过“开发小程序”上传模板。开发人员把代码上传到模板,支持…