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 相关文章推荐
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
基于php无限分类的深入理解
Jun 02 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
一个简单的PHP验证码实现代码
May 10 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
PHP实现批量上传单个文件
Dec 29 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
Mar 01 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php生成shtml类用法实例
2014/12/09 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
理解Javascript闭包
2013/11/01 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
python日期相关操作实例小结
2019/06/24 Python
python hough变换检测直线的实现方法
2019/07/12 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
Python 如何提高元组的可读性
2019/08/26 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
企业治理工作自我评价
2013/09/26 职场文书
生日邀请函范文
2014/01/13 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python