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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
PHP随机数生成代码与使用实例分析
Apr 08 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
PHP进程通信基础之信号
Feb 19 PHP
php post json参数的传递和接收处理方法
May 31 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修改session_id示例代码
2014/01/08 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
加载 Javascript 最佳实践
2011/10/30 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
js实现无缝滚动图
2017/02/22 Javascript
SVG实现时钟效果
2018/07/17 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
python学生管理系统学习笔记
2019/03/19 Python
python微信撤回监测代码
2019/04/29 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
正风肃纪剖析材料
2014/02/18 职场文书
元旦促销方案
2014/03/15 职场文书
森林防火标语
2014/06/23 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
离婚协议书格式
2015/01/26 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
初中英语教学反思范文
2016/02/15 职场文书
创业计划之特色精品店
2019/08/12 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers