PHP实现二维数组去重功能示例


Posted in PHP onJanuary 12, 2017

本文实例讲述了PHP实现二维数组去重功能。分享给大家供大家参考,具体如下:

php中二维数组去重操作。例如从数据库中查询出的记录,根据某个键做去重操操作

代码如下:

/**
 * 删除二维数组中相同项的数据,(一般用于数据库查询结果中相同记录的去重操作)
 *
 * @param array $_2d_array 二维数组,类似:
 *     $tmpArr = array(
 *         array('id' => 1, 'value' => '15046f5de5bb708e'),
 *         array('id' => 1, 'value' => '15046f5de5bb708e'),
 *     );
 * @param string $unique_key 表示上述数组的 "id" 键,或者 "value" 键
 *
 * @return mixed
 */
function unique_2d_array_by_key($_2d_array, $unique_key) {
  $tmp_key[] = array();
  foreach ($_2d_array as $key => &$item) {
    if ( is_array($item) && isset($item[$unique_key]) ) {
      if ( in_array($item[$unique_key], $tmp_key) ) {
        unset($_2d_array[$key]);
      } else {
        $tmp_key[] = $item[$unique_key];
      }
    }
  }
  return $_2d_array;
}
//使用示例:
$tmpArr = array(
  array('id' => 1, 'value' => '15046f5de5bb708e'),
  array('id' => 1, 'value' => '15046f5de5bb708e'),
);
print_r(@unique_2d_array_by_key($tmpArr,id));

运行结果:

Array ( [0] => Array ( [id] => 1 [value] => 15046f5de5bb708e ) )

原理:将需要去重的第二维数组中的键保存起来,遍历对比下一组数据,如遇键值相同则删除。

PS:本站还有一款比较简单实用的在线文本去重复工具,推荐给大家使用:

在线文本去重复工具:
http://tools.3water.com/aideddesign/txt_quchong

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
3.从实例开始
Oct 09 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
谈谈关于php的优点与缺点
Apr 11 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php随机显示图片的简单示例
Feb 15 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
PHP生成图片缩略图类示例
Jan 12 #PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 #PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 #PHP
YII2 实现多语言配置的方法分享
Jan 11 #PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 #PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 #PHP
php实现36进制与10进制转换功能示例
Jan 10 #PHP
You might like
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
jQuery实现延迟跳转的方法
2015/06/05 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python实现ID3决策树算法
2018/08/29 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
Python Process多进程实现过程
2019/10/22 Python
Python 复平面绘图实例
2019/11/21 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
人事主管的岗位职责
2013/11/16 职场文书
安全演讲稿大全
2014/05/09 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB