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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
在线增减.htpasswd内的用户
Oct 09 PHP
关于BIG5-HKSCS的解决方法
Mar 20 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
php实现JWT验证的实例教程
Nov 26 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安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
python模拟enum枚举类型的方法小结
2015/04/30 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
锅炉工岗位职责
2015/02/13 职场文书
交通安全温馨提示语
2015/07/14 职场文书
初中语文教学随笔
2015/08/15 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
2019年大学推荐信
2019/06/24 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers