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 DOMElement 操作xml 文档的实现代码
May 10 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
smarty中js的调用方法示例
Oct 27 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
php去除二维数组的重复项方法
Nov 03 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
YII动态模型(动态表名)支持分析
Mar 29 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
php 多继承的几种常见实现方法示例
Nov 18 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php解析json数据实例
2014/08/19 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
python安装后的目录在哪里
2020/06/21 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
2014年班组长工作总结
2014/11/20 职场文书
亲戚关系证明
2015/06/24 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript