php 二维数组根据其他字段值是否相同来进行去重

server/2025/1/12 22:29:26/

在PHP中,可以使用array_reduce函数和array_column函数结合来实现二维数组去重。以下是一个示例代码:

php">$array = [['id' => 1, 'name' => 'Alice', 'age' => 25],['id' => 2, 'name' => 'Bob', 'age' => 27],['id' => 3, 'name' => 'Charlie', 'age' => 25],['id' => 1, 'name' => 'Alice', 'age' => 25], // 重复项
];// 使用array_column提取特定字段,并使用array_reduce去重
$uniqueArray = array_reduce(array_column($array, null), function ($carry, $item) {if (!isset($carry[$item['id']])) {$carry[$item['id']] = $item;}return $carry;
}, []);// 重置索引
$uniqueArray = array_values($uniqueArray);print_r($uniqueArray);

这段代码会输出一个去除了基于id字段重复项的数组。如果需要基于其他字段去重,只需修改 c a r r y [ carry[ carry[item[‘id’]]中的’id’为相应的字段名即可。


http://www.ppmy.cn/server/157870.html

相关文章

【数据链电台】洛克希德·马丁(Lockheed Martin)

洛克希德马丁公司(Lockheed Martin)是全球领先的航空航天、国防、先进技术和安全领域的供应商之一。 公司为美军及盟国军队提供了广泛的通信系统,包括数据链电台和相关的通信系统。 洛克希德马丁的许多产品用于战术通信、卫星通信、电子战、…

Ubuntu24.04安装AppImage报错AppImages require FUSE to run.

报错如下: 解决: sudo apt install libfuse2t64如果不行: sudo add-apt-repository universe sudo apt install libfuse2t64安装时又报错: [10354:0109/100149.571068:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox hel…

.NET中的框架和运行环境

在.NET生态系统中,框架和运行环境是两个不同的概念,它们各自扮演着重要的角色。 下面我将分别介绍.NET中的框架和运行环境,并解释它们之间的区别。 .NET 框架(Frameworks) 框架提供了一套预定义的类库、工具和服务&…

dll文件找不到了,msvcp140_ATOMIC_WAIT.dll丢失的解决方法

在日常使用电脑的过程中,你是否遇到过这样的烦心事:满心欢喜地打开一款心仪的软件,或是准备投身紧张刺激的游戏世界时,突然弹出一个报错窗口,无情地宣告 “msvcp140_ATOMIC_WAIT.dll 丢失”,紧接着软件闪退…

在 Ubuntu 下通过 Docker 部署 MySQL 服务器

引言 Docker 是一个开源的容器化平台,允许开发者将应用及其依赖打包成一个标准化的单元。MySQL 是一个广泛使用的关系型数据库管理系统,因其高性能、可靠性和易用性,成为许多应用的首选数据库。结合 Docker 和 MySQL,可以轻松地创…

redis的学习(四)

13. 渐进式遍历 通过渐进式遍历能够获取当前所有的key,又不会讲当前的服务器卡死。不是一个命令将所有的key获取,而是每执行一次命令,只获取到其中的一部分。所以想要获取到所有的key就需要多次遍历,即化整为零的思想。 渐进式遍历…

Spring Boot整合SSE实时通信

服务器发送事件(Server-Sent Events, SSE)是一种让网页实时更新的技术。想象一下,您正在浏览一个网页,而这个网页需要在有新信息时自动更新,比如新闻网站的最新消息、社交媒体的通知或股票市场的价格变动。SSE使得这种…

Go语言开发中如何处理海量文件的并发读写问题 ?

在Go语言开发中处理海量文件的并发读写问题是一个复杂但常见的需求,特别是在大数据处理、日志分析、文件服务器等场景中。为了高效地处理这些任务,我们需要综合考虑并发控制、I/O性能优化、内存管理、错误处理等多个方面。以下将详细探讨如何在Go语言中实…