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.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
Cakephp 执行主要流程
Mar 24 PHP
关于js与php互相传值的介绍
Jun 25 PHP
php中apc缓存使用示例
Dec 25 PHP
php生成excel文件的简单方法
Feb 08 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
PHP消息队列用法实例分析
Feb 12 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php 获取本地IP代码
2013/06/23 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
简单的python协同过滤程序实例代码
2018/01/31 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python format 格式化输出方法
2018/07/16 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python str字符串转uuid实例
2020/03/03 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
Python实现像awk一样分割字符串
2020/09/15 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
运动会广播稿200字
2014/01/15 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
初中教师个人总结
2015/02/10 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android