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 相关文章推荐
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
PHP中的extract的作用分析
Apr 09 PHP
PHP 时间转换Unix时间戳代码
Jan 22 PHP
php上传文件的增强函数
Jul 21 PHP
php编写一个简单的路由类
Apr 13 PHP
php共享内存段示例分享
Jan 20 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
php实现的mongodb操作类实例
Apr 03 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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函数解决SQL injection
2006/10/09 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
JS常用字符串处理方法应用总结
2014/05/22 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
学习自我鉴定
2014/02/01 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书