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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 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
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
PHP错误处理函数
2016/04/03 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
javascript parseInt 大改造
2009/09/27 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
Javascript中的作用域及块级作用域
2017/12/08 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
Django之PopUp的具体实现方法
2019/08/31 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
python装饰器代码深入讲解
2021/03/01 Python
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
幼儿园国庆节活动方案
2014/02/01 职场文书
工商管理专业自荐信
2014/06/03 职场文书
婚宴新郎致辞
2015/07/28 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS