php 二维数组中去重,[转]PHP二维数组去重数组去重
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.位运算 因为对于异或运算有:相同为0不同为1,举例说明: 5 --->0 1 0 1 11--->1 0 1 1 然后 5 XOR 10 = 1 ...
- 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...
导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...
- 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组
3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...
- 读入的字节都写入字节数组中_使用Java将文件读入字节数组的7个示例
读入的字节都写入字节数组中 嗨,大家好,Java程序员经常在现实世界中遇到编程问题,他们需要将文件中的数据加载到字节数组中,该文件可以是文本文件或二进制文件. 一个示例是将文件的内容转换为String ...
- python怎么从数组中提取连续的数字_从numpy数组中删除连续的数字
我是python新手,但我对我要做的这个项目真的很困惑.我看到了一张图片here.我要做的是找出图像中像素范围从0到255的所有方块的平均值.下面的代码显示了我用来计算图片值的方法.出现的问题是像素/ ...
- C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...
- arraycopy方法(将数组中指定的数据拷贝到另一个数组)
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据 ...
- 数组[Java](除去一个数组中的某个值并生成一个新数组)
** 数组 **[Java](除去一个数组中的某个值并生成一个新数组) 例如:现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; ...
- python序列是几维_numpy中三维阵列的二维切片序列
实际上,我编写代码是为了做我认为您正在寻找的事情,看看这是否有帮助:import numpy as np import pylab class plotter: def __init__(self, ...
- 数组中其余的排除_6.8 C++字符数组 | 输出a、b、c
C++字符数组 和C语言一样,在C++中用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符,字符数组具有数组的共同属性. C++字符数组的定义 定义字符数组的方法与上两节将的一维数组和 ...
最新文章
- 机器人是如何规划路径的?动画演示一下吧
- 学术论文模式图、统计图绘制
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果
- Linux——进程控制(总结)
- 第9课_2_dbsoft安装
- android:SQlite
- linux系统中安装python_2. Linux 下安装python
- HTML表格属性跨列,HTML表格的使用 与 跨行跨列
- python_83_random_应用验证码
- CentOS7下Tomcat启动慢的原因及解决方案
- 5亿次Web攻击 怎么防住的?
- c语言一维数组程序题,C语言程序设计 练习题参考答案 第四章 一维数组
- 数字图像处理第四版更新内容
- cad快看_有石CAD自动下单排版软件,让你的CAD都比别人强!
- 0宽字符隐藏文本加密及原理
- TP6微信公众号登陆授权
- 常用贴片器件正负极区分
- NC Cloud参照过滤(主子表、单表、查询区、报表)
- dw网页设计与制作html,终于发现网页设计与制作问题
- css图片按键变手指,CSS-悬停button标签时如何使光标变为手形