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实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
PHP empty函数报错解决办法
Mar 06 PHP
php数组中包含中文的排序方法
Jun 03 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php计算一个文件大小的方法
Mar 30 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php中引用符号(&)的使用详细介绍
Dec 06 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
详细解读php的命名空间(一)
Feb 21 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
基于php实现的验证码小程序
2016/12/13 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
微信小程序实现留言板
2018/10/31 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python的pdb调试命令的命令整理及实例
2017/07/12 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
对Python3 序列解包详解
2019/02/16 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
Sql面试题
2013/03/20 面试题
文秘求职信范文
2014/04/10 职场文书
答谢会策划方案
2014/05/12 职场文书
白血病捐款倡议书
2014/05/14 职场文书
图书馆标语
2014/06/19 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书