本篇文章给大家带来的内容是介绍php二维数组如何去重?(代码示例),让大家了解二维数组去重的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组是如何去重的?

下面我们就通过简单的代码示例来看看二维数组去重的方法:

代码示例:/*

* 二维数组去重

* 注意:二维数组中的元素个数必须一致,且键值也得一致,否则无意义

* @param array $arr

* @return array $arr_after

*/

public function array_unique_2DArr($arr=array()){

if(empty($arr) || !is_array($arr)){

return array();

}

/*******处理二维数组个数不一致问题 start 其他项目用可以去掉*******/

//判断数组中二维数组是否包含uniqueId,存在的话需要处理其他的日志信息,全部加上uniqueId,且uniqueId值必须相同

$hasUniqueId = false;

foreach($arr as $val){

if(array_key_exists('uniqueId', $val)){

$hasUniqueId = true;

break;

}

}

//如果$arr中的二维数组中uniqueId存在,则其他也增加

if($hasUniqueId){

foreach($arr as $_k=>$_val){

if(!array_key_exists('uniqueId', $_val)){

//在$_val中增加unique,只是为了和其他的带有uniqueId键值的数组元素个数保持一致

$_val_keys = array_keys($_val);

$_val_vals = array_values($_val);

array_unshift($_val_keys, 'uniqueId');

array_unshift($_val_vals, '0_0');

$arr[$_k] = array_combine($_val_keys, $_val_vals);

}

}

}

/********处理二维数组个数不一致问题 end********/

foreach($arr[0] as $k => $v){

$arr_inner_key[]= $k; //先把二维数组中的内层数组的键值记录在在一维数组中

}

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

$v =join("^",$v); //降维 用implode()也行 ,注意,拆分时不能用逗号,用其他的不常用符号,逗号可能会由于数据本身含有逗号导致失败

$temp[$k] =$v; //保留原来的键值

}

$temp =array_unique($temp); //去重:去掉重复的字符串

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

$a = explode("^",$v); //拆分后的重组

$arr_after[$k]= array_combine($arr_inner_key,$a); //将原来的键与值重新合并

}

return $arr_after;

}

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程推荐:php教程!

php如何去重,php二维数组如何去重?(代码示例)相关推荐

  1. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)

    本文介绍下,对php数组去除重复的方法,包括一维数组的去重.二维数组的去重.有需要的朋友参考下. 首先,来看一维数组重复项的去除方法. 使用array_unique函数,例如: 输出结果: Array ...

  2. php 两个二维数组怎么去重,php 二维数组怎么不去重合并

    php二维数组不去重合并的方法:首先创建一个PHP示例文件:然后创建两个二维数组:最后通过"array_merge_recursive"函数合并数组即可. 本文操作环境:Windo ...

  3. C++动态二维数组演示的代码

    将代码过程中经常用到的代码珍藏起来,下边资料是关于C++动态二维数组演示的代码. #include <iostream> #include <string>using name ...

  4. php 二维数组中去重,PHP实现二维数组去重功能示例

    PHP实现二维数组去重功能示例 发布于 2017-08-07 21:05:17 | 68 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Prep ...

  5. php根据指定字段去重,php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  6. isset php 二维数组_php 数组去重,一维数组去重,二维数组去重

    php 数组去重 一维数组 方法1: array_unique($mobile_array); 方法2: $mobile_array = array_flip($mobile_array); $mob ...

  7. php根据某个字段去重,php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  8. php 二维数组中去重,[转]PHP二维数组去重数组去重

    PHP中提供了array_unique函数去除一维数组中的重复项,但是我们实际的项目开发中,从数据库select查询出来的数组经常是二维的: 这里面可能有重复项,这就需要我们自己定义函数进行去除重复项 ...

  9. java语言二维数组转置_java实现二维数组转置的方法示例

    本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中 ...

  10. 二维数组vector的代码使用简单例子_vector容器_ 用构造函数vectorint()

    二维数组vector 用构造函数vector<int>() #include <iostream> #include<vector> using namespace ...

最新文章

  1. 【hexo】搭建个人bolg日志 day1
  2. 乔安监控云存储_让数据更安全可用,阿里云存储多项新功能发布
  3. 将模式对话框的返回值回送(PostBack)到服务端
  4. 4.2 开发者选项--电源错误报告的适配
  5. kubernetes-1.11.0集群部署之master集群 (二)
  6. unity的自带特性
  7. JS实时检测文本框内容长度
  8. 【8】万魂杀服务器开发方面之新版GM工具
  9. 微信商品详细信息页面html,微信小程序商品展示页面(仿咸鱼)
  10. mysql表死锁查询
  11. 使用Python实现生产者消费者问题
  12. android 二级 滚动,android使用 ScrollerView 实现 可上下滚动的分类栏实例
  13. 65个面试常见问题技巧回答,你知道吗
  14. 操作 神通数据库_国产神通数据库教程
  15. html好看鼠标光标特效
  16. PS学习-剪切蒙版制作艺术字
  17. 在2022年如何将整个维基百科下载到U盘中
  18. 一个关于Linux Bridge配置的吐嘈
  19. 淘宝商品详情api接口(解决滑块支持高并发采集)
  20. 深圳各区对企业制定行业标准和国家标准的补贴,奖励5-200万

热门文章

  1. LINUX内核的进程调度策略
  2. python求第三边长_如何用python求第三条边边长
  3. android动画水波纹外扩,Android实现水波纹扩散效果
  4. matlab e52pt,matlab 神经网络的文字识别 有详细注释-补充样本
  5. 一秒钟世界上会发生多少事_再多涂改,人性也总会醒来,也总会主动去追寻那一秒钟...
  6. java逆向框架_JOOQ框架学习(1):逆向编译生成代码
  7. jdk8 32位_HashMap源码分析 jdk8
  8. 度量 数据突变_使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?
  9. mac 设置环境变量path的几种方法
  10. mysql 几个超时参数(timeout)解释