新闻中心

php去除重复数组元素_array_unique函数去重实战【指南】

2025-12-14
浏览次数:
返回列表
PHP中array_unique()可高效去重:一、基础用法保留首次出现元素及原键名;二、关联数组仅按值去重;三、配合array_values()重置为连续数字键;四、多维数组需序列化处理;五、支持SORT_STRING/SORT_NUMERIC自定义比较。

php去除重复数组元素_array_unique函数去重实战【指南】

如果您在PHP开发中遇到数组包含重复元素的问题,需要保留唯一值并移除冗余项,则可以使用内置函数 array_unique() 实现高效去重。以下是该函数在不同场景下的具体应用方式:

一、基础用法:对一维索引数组去重

array_unique() 默认对一维索引数组执行去重操作,保留首次出现的元素,并保持原始键名不变。该方法适用于字符串、整数等标量值组成的简单数组。

1、定义一个含重复值的一维数组,例如:$arr = ['apple', 'banana', 'apple', 'cherry', 'banana'];

2、调用 array_unique($arr) 函数处理该数组。

3、使用 print_r() 输出结果,观察键名与值的变化。

二、关联数组去重:仅依据值判断重复

当数组为关联数组时,array_unique() 仍只比较值(value)是否重复,不检查键名(key)。重复值对应的后续键值对将被剔除,首次出现的键值对得以保留。

1、创建关联数组:$assoc = ['a' => 'red', 'b' => 'blue', 'c' => 'red', 'd' => 'green'];

2、执行 $result = array_unique($assoc);

3、验证输出中键 'c' 对应的元素已被移除,而键 'a' 保持存在。

三、强制重置键名:配合array_values()使用

array_unique() 默认保留原始键名,可能导致返回数组键名不连续。若需获得从0开始递增的数字索引,须手动调用 array_values() 重新索引。

1、对原数组执行去重:$unique = array_unique($arr);

Glean Glean

Glean是一个专为企业团队设计的AI搜索和知识发现工具

Glean 210 查看详情 Glean

2、立即传入 array_values($unique) 获取标准索引数组。

3、确认新数组键名为 0, 1, 2, ... 的连续整数序列。

四、多维数组去重:无法直接使用array_unique()

array_unique() 不支持直接处理多维数组,因其内部比较机制仅作用于一维结构。若尝试对二维数组调用该函数,将触发警告并返回原数组。

1、定义二维数组:$multi = [['id'=>1,'name'=>'A'], ['id'=>2,'name'=>'B'], ['id'=>1,'name'=>'A']];

2、执行 array_unique($multi, SORT_REGULAR) 并观察返回结果未发生变化。

3、改用循环+序列化方式实现去重:array_map('unserialize', array_unique(array_map('serialize', $multi)))

五、自定义比较规则:使用SORT_STRING或SORT_NUMERIC标志

array_unique() 支持第二个参数指定排序类型,影响字符串与数字的比较逻辑。默认为 SORT_STRING,但可显式传入 SORT_NUMERIC 以启用数值比较模式。

1、构造混合类型数组:$mixed = ['1', 1, '2', 2.0, '1'];

2、使用 array_unique($mixed, SORT_STRING) 得到三个唯一项('1', '2', 2.0)。

3、改用 array_unique($mixed, SORT_NUMERIC) 后,'1' 与 1 被视为相同,结果仅剩两个唯一项。

以上就是php去除重复数组元素_array_unique函数去重实战【指南】的详细内容,更多请关注其它相关文章!


# 转成  # 网站营销推广服务费用  # 浅谈seo与引擎优化  # 视频网站建设培训班  # seo怎么增加粉丝  # 美容店怎么推广营销好做  # 营口seo公司稳健火星  # 吴起优化网站关键词排名  # 顺德网站建设程序  # 要想SEO文案写得好  # seo标题和导航  # 自定  # 移除  # php  # 如何使用  # 做一个  # 首次  # 自定义  # 键名  # 键值  # 多维  # red  # 键值对  # apple  # php开发  # app 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  解决Python logging 中 datefmt 导致时间戳固定不变的问题  照顾宝贝2小游戏点击立即在线玩  Python中高效访问嵌套字典与列表中的键值对  QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台  Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践  抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩  Python模块化编程:有效管理依赖与避免循环引用  PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract  win11 arm版怎么安装 M1/M2 Mac虚拟机安装ARM win11的方法  解决 MongoDB 聚合查询中对象数组 _id 匹配问题  J*aScript map 方法中处理循环元素为空数组的策略  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  iCloud登录入口网页版 苹果iCloud官网登录  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  Django模型中自动计算可用余额的实现方法  台积电1.4nm工艺A14瞄准2028:10年来性能提升80%  composer 和 npm/yarn 在管理依赖方面有什么核心思想差异?  UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  在Go Martini框架中高效服务动态生成图像的实践指南  html5 app怎么运行环境_配html5 app运行环境【教程】  12306几点到几点不能订票? | 官方最新系统维护时间全解析  限制HTML日期输入框的日期选择范围  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  Python getattr() 异常处理深度解析:避免程序意外退出  c++如何实现单例设计模式_c++线程安全的单例模式写法  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  夸克AO3官网入口_AO3镜像网站2025推荐  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程  韩小圈电脑版在线入口_网页版免费登录地址  黑猫投诉统一入口官网 消费者权益保护投诉平台  Flexbox布局实践:实现粘性导航栏与底部固定页脚  Angular Material 垂直步进器:实现底部到顶部排序的教程  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  痛风发作了怎么办? 快速止痛和后期饮食调理  windows10怎么关闭系统提示音_windows10彻底静音设置方法  React中useState与局部变量:理解组件状态管理与渲染机制  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏  Composer如何在生产环境安全地执行composer update  如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站 

搜索