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与SQL注入攻击[三]
Apr 17 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
PHP查询网站的PR值
Oct 30 PHP
php读取csv文件并输出的方法
Mar 14 PHP
php实现的mongodb操作类
May 28 PHP
php生成二维码
Aug 10 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
thinkphp框架类库扩展操作示例
Nov 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
php socket方式提交的post详解
2008/07/19 PHP
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
微信小程序实现tab左右切换效果
2020/11/15 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
Python中整数的缓存机制讲解
2019/02/16 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
pandas取出重复数据的方法
2019/07/04 Python
python实现代码统计器
2019/09/19 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
python实现电子词典
2020/03/03 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
企业环保标语
2014/06/10 职场文书
大专毕业生求职信
2014/07/05 职场文书
警告通知
2015/04/25 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
python中使用redis用法详解
2022/12/24 Redis