PHP二维数组的去重问题解析


Posted in PHP onJuly 17, 2011

之前写了一篇关于数组去重的文章,但是仅限于一维数组。下面的函数可以用于二维数组:

//二维数组去掉重复值 
function array_unique_fb($array2D) 
{ 
foreach ($array2D as $v) 
{ 
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 
$temp[] = $v; 
} 
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 
foreach ($temp as $k => $v) 
{ 
$temp[$k] = explode(",",$v); //再将拆开的数组重新组装 
} 
return $temp; 
}

如果你想保留数组的键值,可以用下面的函数:
//二维数组去掉重复值 并保留键值 
function array_unique_fb($array2D) 
{ 
foreach ($array2D as $k=>$v) 
{ 
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 
$temp[$k] = $v; 
} 
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 
foreach ($temp as $k => $v) 
{ 
$array=explode(",",$v); //再将拆开的数组重新组装 
$temp2[$k]["id"] =$array[0]; 
$temp2[$k]["litpic"] =$array[1]; 
$temp2[$k]["title"] =$array[2]; 
$temp2[$k]["address"] =$array[3]; 
$temp2[$k]["starttime"] =$array[4]; 
$temp2[$k]["endtime"] =$array[5]; 
$temp2[$k]["classid"] =$array[6]; 
$temp2[$k]["ename"] =$array[7]; 
} 
return $temp2; 
}

大概就这样啦。
二维数组去重
<?php 
$arr = array( 
array('id' => 1,'name' => 'aaa'), 
array('id' => 2,'name' => 'bbb'), 
array('id' => 3,'name' => 'ccc'), 
array('id' => 4,'name' => 'ddd'), 
array('id' => 5,'name' => 'ccc'), 
array('id' => 6,'name' => 'aaa'), 
array('id' => 7,'name' => 'bbb'), 
); 
function assoc_unique(&$arr, $key) 
{ 
$rAr=array(); 
for($i=0;$i<count($arr);$i++) 
{ 
if(!isset($rAr[$arr[$i][$key]])) 
{ 
$rAr[$arr[$i][$key]]=$arr[$i]; 
} 
} 
$arr=array_values($rAr); 
} 
assoc_unique(&$arr,'name'); 
print_r($arr); 
?>
PHP 相关文章推荐
php在线打包程序源码
Jul 27 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
基于swoole实现多人聊天室
Jun 14 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
简单的PHP多图上传小程序代码
Jul 17 #PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 #PHP
PHP 验证码的实现代码
Jul 17 #PHP
PHP中用hash实现的数组
Jul 17 #PHP
PHP中文分词的简单实现代码分享
Jul 17 #PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 #PHP
从手册去理解分析PHP session机制
Jul 17 #PHP
You might like
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python imread、newaxis用法详解
2019/11/04 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python with语句用法原理详解
2020/07/03 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
兼职业务员岗位职责
2014/01/01 职场文书
世界读书日的活动方案
2014/08/20 职场文书
环境保护建议书
2014/08/26 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
教师党员个人总结
2015/02/10 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android