全网整合营销服务商

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

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

php如何过滤重复的数组?

PHP过滤重复数组最常用array_unique(),适用于一维数组并保留首次出现元素及原始键名;多维数组需用serialize/array_map或手动遍历实现去重,按字段去重则需结合临时数组判断。

PHP过滤重复数组最常用的方法是用 array_unique(),它能直接去掉一维数组中的重复值,保留首次出现的元素。

基础用法:去重并保持键名

array_unique() 默认保留原始键名(不是数字索引),适合关联数组或需要维持键值对应关系的场景:

$arr = ['a', 'b', 'a', 'c', 'b'];
$result = array_unique($arr);
// 结果:['a'=> 'a', 'b'=> 'b', 'c'=> 'c']

注意:返回的是新数组,原数组不变;重复值被完全移除,只留第一个出现的。

处理多维数组(不能直接用 array_unique)

PHP 原生 array_unique() 不支持多维数组,会报错或返回空。常见解决方式:

  • json_encode() 把每行转成字符串再去重,再 json_decode() 还原
  • array_column() + array_unique() 提取某列去重(适用于按某个字段去重)
  • 手动遍历 + in_array()serialize() 判断是否已存在

简单示例(按整行去重):

$arr2d = [['id'=>1, 'name'=>'Tom'], ['id'=>2, 'name'=>'Jack'], ['id'=>1, 'name'=>'Tom']];
$unique = array_map('unserialize', array_unique(array_map('serialize', $arr2d)));

去重后重置数字索引

如果希望得到连续的数字键(如 0,1,2…),用 array_values() 重新索引:

$arr = ['a', 'b', 'a', 'c'];
$clean = array_values(array_unique($arr));
// 结果:[0=>'a', 1=>'b', 2=>'c']

按特定字段去重(比如二维数组中按 'id' 去重)

更实用的场景:保留每个 id 第一次出现的完整记录:

  • 遍历数组,用一个临时键名数组记录已出现的 id
  • 遇到新 id 才追加到结果中

代码片段:

$data = [['id'=>1, 'val'=>'x'], ['id'=>2, 'val'=>'y'], ['id'=>1, 'val'=>'z']];
$seen = [];
$result = [];
foreach ($data as $item) {
    if (!in_array($item['id'], $seen)) {
        $result[] = $item;
        $seen[] = $item['id'];
    }
}

基本上就这些。一维用 array_unique(),多维或按字段去重就得自己控制逻辑,不复杂但容易忽略键名和数据结构的影响。


# php  # js  # json  # 键值对  # 关联数组  # 多维数组  # 字符串  # 数据结构  # 多维  # 遍历  # 键名  # 首次  # 适用于  # 最常用  # 的是  # 组中  # 第一个 


相关文章: 建站之星价格显示格式升级,你的预算足够吗?  c# 在ASP.NET Core中管理和取消后台任务  西安专业网站制作公司有哪些,陕西省建行官方网站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何快速重置建站主机并恢复默认配置?  如何用狗爹虚拟主机快速搭建网站?  ppt制作免费网站有哪些,ppt模板免费下载网站?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  大连 网站制作,大连天途有线官网?  如何在万网ECS上快速搭建专属网站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何获取开源自助建站系统免费下载链接?  宝塔面板创建网站无法访问?如何快速排查修复?  免费网站制作appp,免费制作app哪个平台好?  已有域名和空间如何快速搭建网站?  如何通过IIS搭建网站并配置访问权限?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站VPS推荐:2025年高性能服务器配置指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何在阿里云ECS服务器部署织梦CMS网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何在Ubuntu系统下快速搭建WordPress个人网站?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  建站VPS能否同时实现高效与安全翻墙?  建站之星如何快速解决建站难题?  如何撰写建站申请书?关键要点有哪些?  nginx修改上传文件大小限制的方法  Swift开发中switch语句值绑定模式  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何在宝塔面板中创建新站点?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何配置FTP站点权限与安全设置?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  装修招标网站设计制作流程,装修招标流程?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  韩国服务器如何优化跨境访问实现高效连接?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  建站主机选择指南:服务器配置与SEO优化实战技巧  深圳网站制作的公司有哪些,dido官方网站?  如何通过服务器快速搭建网站?完整步骤解析  学校为何禁止电信移动建设网站?  一键网站制作软件,义乌购一件代发流程?  公众号网站制作网页,微信公众号怎么制作? 

您的项目需求

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