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添加MySQL数据记录代码
Jun 07 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
php7 错误处理机制修改实例分析
May 25 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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
中软Java笔试题
2012/11/11 面试题
初中地理教学反思
2014/01/11 职场文书
物业品质提升方案
2014/06/08 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
公司借条范本
2015/05/25 职场文书
谢师宴家长致辞
2015/07/27 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书