PHP二维数组的去重问题解析

 更新时间:2011年07月17日 16:41:15   作者:  
PHP数组去除重复项有个内置函数array_unique(),但是php的array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组的array_unique函数。
之前写了一篇关于数组去重的文章,但是仅限于一维数组。下面的函数可以用于二维数组:
复制代码 代码如下:

//二维数组去掉重复值
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);
?>

相关文章

  • Thinkphp框架开发移动端接口(2)

    Thinkphp框架开发移动端接口(2)

    这篇文章主要介绍了thinkphp框架开发移动端接口的第2种方法,实现移动端访问自动切换移动主题模板,从而实现伪app访问,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • phpmyadmin MySQL 加密配置方法

    phpmyadmin MySQL 加密配置方法

    phpmyadmin MySQL 加密配置方法
    2009-07-07
  • PHP如何获取命令行参数

    PHP如何获取命令行参数

    这篇文章主要介绍了PHP如何获取命令行参数,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-05-05
  • php写入txt乱码的解决方法

    php写入txt乱码的解决方法

    在本篇文章里小编给大家分享的是关于php写入txt乱码的知识点以及解决方法,有需要的朋友们参考下。
    2019-09-09
  • PHP5多态性与动态绑定介绍

    PHP5多态性与动态绑定介绍

    这篇文章主要介绍了PHP5多态性与动态绑定介绍,本文主要讲解了什么是多态性和什么是动态绑定,并给出相应实例,需要的朋友可以参考下
    2015-04-04
  • PHP实现删除字符串中任何字符的函数

    PHP实现删除字符串中任何字符的函数

    这篇文章主要介绍了PHP实现删除字符串中任何字符的函数,涉及php针对字符串的遍历与截取操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • php插入中文到sqlserver 2008里出现乱码的解决办法分享

    php插入中文到sqlserver 2008里出现乱码的解决办法分享

    今天使用php操作数据库时发现插入SQL Server 2008数据库里的中文字段出现乱码,通过下面的方法解决了,需要的朋友可以参考下
    2012-07-07
  • php实现希尔排序算法的方法分析

    php实现希尔排序算法的方法分析

    这篇文章主要介绍了php实现希尔排序算法的方法,简单说明了希尔排序的原理,并结合实例形式分析了php实现希尔排序的具体操作技巧,需要的朋友可以参考下
    2017-12-12
  • PHP判断浏览器、判断语言代码分享

    PHP判断浏览器、判断语言代码分享

    这篇文章主要给大家分享了PHP判断浏览器、判断语言的代码,十分的简单,主要是对服务器预定义变量$_SERVER的获取分析,这里推荐给大家。
    2015-03-03
  • php操作(删除,提取,增加)zip文件方法详解

    php操作(删除,提取,增加)zip文件方法详解

    本文给大家分享的是php操作zip文件的方法示例,包括了从zip压缩文件中提取文件、从一个zip压缩文件中删除文件、添加一个文件到zip压缩文件中,推荐给大家,有需要的小伙伴参考下。
    2015-03-03

最新评论