新闻中心

php如何过滤重复的数组?

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

php如何过滤重复的数组?

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() 判断是否已存在

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

j2me3D游戏开发简单教程 中文WORD版 j2me3D游戏开发简单教程 中文WORD版

本文档主要讲述的是j2me3D游戏开发简单教程; 如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功。如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂。应用程序中多边形的所有角点必须在数组中独立编码。在JSR 184中,这称为立即模式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

j2me3D游戏开发简单教程 中文WORD版 0 查看详情 j2me3D游戏开发简单教程 中文WORD版
$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如何过滤重复的数组?的详细内容,更多请关注其它相关文章!


# 首次  # 体育营销案例推广方案  # 商丘营销推广好用吗  # 遵义网站建设推广外包  # 黑帽seo挣钱方式  # 茌平响应式网站建设  # 推广土豆的营销论文题目  # 北碚区网络推广营销  # 微信营销推广加人方法  # 厚街学校网站建设  # 谷歌seo推广公司杭州  # 适用于  # 组中  # php  # 键值  # 键名  # 的是  # 数据结构  # 遍历  # 游戏开发  # 多维  # 键值对  # json  # js  # 数组过滤 


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


相关推荐: 护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  百度网盘网页版入口 百度网盘网页版官方登录网址  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  css链接悬停下划线样式如何自定义_使用::after结合content和transition  Django表单提交验证失败后保持字段值不刷新  J*a递归快速排序中静态变量导致数据累积问题的解决方案  Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  mysql如何设置表访问权限_mysql表访问权限配置  优化Log4j2控制台输出性能:解决异步日志瓶颈  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版  c++20的std::jthread是什么_c++可中断线程与RAII式管理  在Pyomo中实现基于变量的条件约束:Big-M方法详解  汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口  python3时间如何用calendar输出?  UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS  Python多线程中正确使用sigwait处理SIGALRM信号  EMS快递官网app_中国邮政速递物流手机客户端  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  谷歌学术网站直达地址 谷歌学术搜索网页版一键进入  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  J*aScript中管理异步API调用:确保操作顺序与数据一致性  铃兰之剑为这和平的世界希里技能组及加点推荐  《GTA6》开发画面疑似泄露!这次可不是AI了  mc.js游戏直达 mc.js网页免下载版本秒进地址  Steam官网入口直达 Steam注册及登录步骤  Python getattr() 异常处理深度解析:避免程序意外退出  4399体育竞技小游戏_4399小游戏赛事入口  必由学官网入口 必由学教师登录入口  内存疯狂猛猛涨价:主板销量直接腰斩!  必由学官方登录入口 必由学教师学生账号快速访问  iCloud登录入口网页版 苹果iCloud官网登录  Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  windows10怎么查看本机ip_windows10命令提示符ipconfig使用  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法  word中如何让数字纵向排列_Word数字纵向排列方法  TikTok网页版直接登录 TikTok网页端官方平台入口  怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】  机器学习中对数变换预测结果的反向还原  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  字由网在线版登录地址 字由网网页版安全入口 

搜索