全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php怎么删除数组中重复元素_PHP清除数组重复元素的方法

PHP数组去重可通过五种方式:一、array_unique()函数直接去重并重置数字键;二、array_flip()两次反转法利用键唯一性;三、foreach循环手动判断;四、array_reduce()累积构建;五、关联数组用array_intersect_key()保留键名。

如果PHP数组中存在重复元素,需要保留唯一值并移除冗余项,则可以通过多种内置函数或自定义逻辑实现。以下是几种可行的操作方式:

一、使用array_unique()函数

该函数直接对数组进行去重处理,保留每个键值首次出现的元素,返回新数组,原数组不受影响。适用于索引数组和关联数组,但会重置数字键。

1、定义一个含重复值的数组,例如:$arr = [1, 2, 2, 3, 4, 4, 5];

2、调用array_unique($arr),得到去重后的新数组。

3、如需保持原有数字键顺序,可追加array_values()重新索引,例如:$result = array_values(array_unique($arr));

二、使用array_flip()两次反转法

利用键名唯一性原理:先将数组值转为键名,再反转回值,自动剔除重复键对应的覆盖项。此方法仅适用于值为字符串或整数的数组,且会丢失原始键名。

1、对原数组执行array_flip($arr),生成以原值为键、原键为值的临时数组。

2、对上一步结果再次执行array_flip(),恢复为以原值为值的新数组。

3、最终结果即为去重后的数组,例如:$result = array_flip(array_flip($arr));

三、使用foreach循环手动判断

通过遍历逐个检查元素是否已存在于目标数组中,适合需自定义比较逻辑(如忽略大小写、处理嵌套结构)的场景,但性能低于内置函数。

1、初始化空数组$unique = [];

2、使用foreach ($arr as $value)遍历原数组。

3、在循环体内使用!in_array($value, $unique)判断当前值是否尚未加入,若为真则执行[] = $value追加。

四、使用array_reduce()函数

通过累积器方式构建新数组,在每次迭代中决定是否将当前元素纳入结果,支持更灵活的去重条件控制。

1、调用array_reduce($arr, function($carry, $item) { ... }, []),初始累积值为空数组。

2、在匿名函数内部,使用!in_array($item, $carry)判断是否跳过重复项。

3、若未重复,则返回array_merge($carry, [$item]);否则返回原$carry。

五、针对关联数组保留键名的去重

当需维持原始键名且依据值去重时,不能直接使用array_unique(其默认行为会重排数字键),应结合array_keys与array_unique配合提取键名。

1、先用array_unique($arr)获取去重后的值数组。

2、再用array_intersect_key($arr, array_unique($arr))筛选出原始数组中对应位置的键值对。

3、该组合确保关联键名不丢失,同时值唯一,例如:$result = array_intersect_key($arr, array_unique($arr));


# php  # 键值对  # red  # 关联数组  # foreach  # 字符串  # 循环  # function  # 键名  # 值为  # 数字键  # 遍历  # 组中  # 两次  # 适用于  # 键值  # 法利  # 首次 


相关文章: 如何有效防御Web建站篡改攻击?  如何用狗爹虚拟主机快速搭建网站?  ,如何利用word制作宣传手册?  如何通过虚拟主机快速完成网站搭建?  如何在阿里云服务器自主搭建网站?  建站之星备案是否影响网站上线时间?  建站之星在线客服如何快速接入解答?  如何实现建站之星域名转发设置?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  宝塔建站无法访问?如何排查配置与端口问题?  制作公司内部网站有哪些,内网如何建网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  Android自定义控件实现温度旋转按钮效果  专业网站建设制作报价,网页设计制作要考什么证?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何配置支付宝与微信支付功能?  江苏网站制作公司有哪些,江苏书法考级官方网站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  建设网站制作价格,怎样建立自己的公司网站?  如何通过西部建站助手安装IIS服务器?  如何基于云服务器快速搭建网站及云盘系统?  北京网站制作的公司有哪些,北京白云观官方网站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  ,网页ppt怎么弄成自己的ppt?  定制建站价位费用解析与套餐推荐全攻略  内网网站制作软件,内网的网站如何发布到外网?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  建站主机选购指南:核心配置优化与品牌推荐方案  建站之星展会模板:智能建站与自助搭建高效解决方案  创业网站制作流程,创业网站可靠吗?  如何在阿里云虚拟服务器快速搭建网站?  如何在自有机房高效搭建专业网站?  建站之星CMS五站合一模板配置与SEO优化指南  浅谈Javascript中的Label语句  高性能网站服务器部署指南:稳定运行与安全配置优化方案  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何高效配置香港服务器实现快速建站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何配置IIS站点权限与局域网访问?  济南网站制作的价格,历城一职专官方网站?  如何快速搭建高效WAP手机网站吸引移动用户?  建站之星安装提示数据库无法连接如何解决?  如何获取PHP WAP自助建站系统源码?  微课制作网站有哪些,微课网怎么进?  存储型VPS适合搭建中小型网站吗?  建站之星备案流程有哪些注意事项? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。