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 相关文章推荐
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
php设计模式之命令模式的应用详解
May 21 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php文件读取方法实例分析
Jun 20 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
php 截取中英文混合字符串的方法
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
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
pandas数据拼接的实现示例
2020/04/16 Python
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
物流管理应届生求职信
2013/11/07 职场文书
运动会稿件100字
2014/02/21 职场文书
技术合作协议书范本
2014/04/18 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
财政局个人年终总结
2015/03/03 职场文书
nginx内存池源码解析
2021/11/20 Servers
浅谈Redis缓冲区机制
2022/06/05 Redis
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技