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仿ZOL分页类代码
Oct 02 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
PHP 压缩文件夹的类代码
2009/11/05 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
window.location.hash 使用说明
2010/11/08 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
js给selected添加options的方法
2015/05/06 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
javascript 数组精简技巧小结
2020/02/26 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
python中温度单位转换的实例方法
2020/12/27 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
公司请假条范文
2014/04/11 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
法定代表人证明书
2014/11/28 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android