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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
php如何计算两坐标点之间的距离
Dec 29 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php 常用类汇总 推荐收藏
2010/05/13 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Numpy掩码式数组详解
2018/04/17 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python3判断IP地址的方法
2021/03/04 Python
李宁官方网店:中国运动品牌
2017/11/02 全球购物
秋季运动会活动方案
2014/02/05 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
在js中修改html body的样式
2021/11/11 Javascript
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Python中time标准库的使用教程
2022/04/13 Python
解决 redis 无法远程连接
2022/05/15 Redis