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 相关文章推荐
实用函数2
Nov 08 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 PHP
微信支付开发告警通知实例
Jul 12 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
layui数据表格自定义每页条数limit设置
Oct 26 PHP
PHP执行linux命令6个函数代码实例
Nov 24 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显示搜索引擎来的关键词
2014/02/13 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
php实现递归的三种基本方式
2020/07/04 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
js玩一玩WSH吧
2007/02/23 Javascript
分享别人写的一个小型js框架
2007/08/13 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
九年级科学教学反思
2014/01/29 职场文书
物理力学求职信
2014/02/18 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
团队队名口号大全
2014/06/06 职场文书
最美护士演讲稿
2014/08/27 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
刑事撤诉申请书
2015/05/18 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python
SQL Server中的游标介绍
2022/05/20 SQL Server