PHP中提供了array_unique函数去除一维数组中的重复项,但是我们实际的项目开发中,从数据库select查询出来的数组经常是二维的;

这里面可能有重复项,这就需要我们自己定义函数进行去除重复项。

思路

首先获取第二维数组的键名,保存在一个数组里面(假设命名为keyname_Arr);

然后使用一个符号做分隔符(比如‘-’),将二维数组里面的键值拼接成一个字符串,生成一个临时数组;

然后使用【array_unique()函数】比较生成的这个临时数组,去掉里面的相同字符串;

然后将去除重复后的数组重新组装成二维数组:在foreach()里面循环使用【explode()函数】,按‘-’分隔符拆分字符串;

同时在foreach()里面对拆分出来的字符串所形成的【新的临时数组tempnew】,再使用一个foreach( $tempnew as $tempk =>$tempv),循环赋值 $output[ $k ][ $keyname_Arr[ $tempk ] ] = tempv ;

最后,$output即是去除重复后的二维数组。

来点实际代码理解一下

//存储内层数组的键名

$keyname_Arr= array_keys(end($resource_arr));

//使用'-'作为分隔将数组拼接成字符串

foreach ($resource_arr as $v){

$v = join("-", $v);

$temp[] = $v;

}

//去掉重复的字符串,也就是重复的一维数组

$temp = array_unique($temp);

//再将拆开的数组重新组装

foreach ($temp as $k => $v){

//拆分去重之后的字符串

$tempnew = explode("-", $v);

foreach($tempnew as $tempkey => $tempval){

$output[$k][$keyname_Arr[$tempkey]] = $tempval;

}

}

php 二维数组中去重,[转]PHP二维数组去重数组去重相关推荐

  1. 找到数组中唯一或者唯二的数

    1.找出数组中唯一或者唯二的数 解题思路1.位运算 因为对于异或运算有:相同为0不同为1,举例说明: 5 --->0 1 0 1 11--->1 0 1 1 然后 5 XOR 10 = 1 ...

  2. 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...

    导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...

  3. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  4. 读入的字节都写入字节数组中_使用Java将文件读入字节数组的7个示例

    读入的字节都写入字节数组中 嗨,大家好,Java程序员经常在现实世界中遇到编程问题,他们需要将文件中的数据加载到字节数组中,该文件可以是文本文件或二进制文件. 一个示例是将文件的内容转换为String ...

  5. python怎么从数组中提取连续的数字_从numpy数组中删除连续的数字

    我是python新手,但我对我要做的这个项目真的很困惑.我看到了一张图片here.我要做的是找出图像中像素范围从0到255的所有方块的平均值.下面的代码显示了我用来计算图片值的方法.出现的问题是像素/ ...

  6. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。

    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...

  7. arraycopy方法(将数组中指定的数据拷贝到另一个数组)

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据 ...

  8. 数组[Java](除去一个数组中的某个值并生成一个新数组)

    ** 数组 **[Java](除去一个数组中的某个值并生成一个新数组) 例如:现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; ...

  9. python序列是几维_numpy中三维阵列的二维切片序列

    实际上,我编写代码是为了做我认为您正在寻找的事情,看看这是否有帮助:import numpy as np import pylab class plotter: def __init__(self, ...

  10. 数组中其余的排除_6.8 C++字符数组 | 输出a、b、c

    C++字符数组 和C语言一样,在C++中用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符,字符数组具有数组的共同属性. C++字符数组的定义 定义字符数组的方法与上两节将的一维数组和 ...

最新文章

  1. 机器人是如何规划路径的?动画演示一下吧
  2. 学术论文模式图、统计图绘制
  3. 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果
  4. Linux——进程控制(总结)
  5. 第9课_2_dbsoft安装
  6. android:SQlite
  7. linux系统中安装python_2. Linux 下安装python
  8. HTML表格属性跨列,HTML表格的使用 与 跨行跨列
  9. python_83_random_应用验证码
  10. CentOS7下Tomcat启动慢的原因及解决方案
  11. 5亿次Web攻击 怎么防住的?
  12. c语言一维数组程序题,C语言程序设计 练习题参考答案 第四章 一维数组
  13. 数字图像处理第四版更新内容
  14. cad快看_有石CAD自动下单排版软件,让你的CAD都比别人强!
  15. 0宽字符隐藏文本加密及原理
  16. TP6微信公众号登陆授权
  17. 常用贴片器件正负极区分
  18. NC Cloud参照过滤(主子表、单表、查询区、报表)
  19. dw网页设计与制作html,终于发现网页设计与制作问题
  20. css图片按键变手指,CSS-悬停button标签时如何使光标变为手形

热门文章

  1. shell 知:sed
  2. java curses_Linux Unix C 中的curses库——curses.h
  3. 今天收到了Joost的邀请
  4. hostapd的配置项ht_capab
  5. php请求找不到tpl文件
  6. 【聊天机器人】您必须了解的最佳聊天机器人框架
  7. PHP 自学全套书籍推荐
  8. 基于STM32的农业灾害监测系统设计
  9. android 摄像头方向,android:调整摄像头方向
  10. c语言摄氏度华氏度转换