PHP实现的多维数组去重操作示例


Posted in PHP onJuly 21, 2018

本文实例讲述了PHP实现的多维数组去重操作。分享给大家供大家参考,具体如下:

最近用到了一个获取历史会议列表的问题,需要去这个多维数组去重后返回返回给客户端,这里使用了几个php的组装函数,分享下,示例代码如下:

<?php
$str = '{
  "status": 0,
  "result": [
    {
      "hostName": "杨新",
      "pcode2": "41675441",
      "email": "xin.yang@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "杨新",
      "pcode2": "41675441",
      "email": "xin.yang@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "中信国安科技控股有限公司",
      "pcode2": "9730284461",
      "email": "liuxiao@gakj.xx.com",
      "selfName": "邵兵"
    },
    {
      "hostName": "中信国安科技控股有限公司",
      "pcode2": "9730284461",
      "email": "liuxiao@gakj.xx.com",
      "selfName": "邵兵"
    },
    {
      "hostName": "刘惠",
      "pcode2": "64068956",
      "email": "huijie.liu@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "刘惠",
      "pcode2": "64068956",
      "email": "huijie.liu@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "刘凯南",
      "pcode2": "14818360",
      "email": "kainan.liu_3@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "刘凯南",
      "pcode2": "14818360",
      "email": "kainan.liu_3@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "宋纬奇",
      "pcode2": "62947142",
      "email": "weiqi.song@xx.cn",
      "selfName": "邵兵"
    },
    {
      "hostName": "宋纬奇",
      "pcode2": "62947142",
      "email": "weiqi.song@xx.cn",
      "selfName": "邵兵"
    }
  ],
  "content_type": "application/json"
}';
$res = json_decode($str,true);
echo 'num: '.count($res['result']);
print_r($res['result']);
echo "</br></br></br>";
$rrr = $res['result'];
$serializeArrs = array_map('serialize',$rrr);
$uniqueArrs = array_unique($serializeArrs);
$unserializeArrs = array_map('unserialize',$uniqueArrs);
print_r($unserializeArrs);
echo "</br></br></br>";
echo json_encode($unserializeArrs);
exit;

运行结果:

num: 10Array ( [0] => Array ( [hostName] => 杨新 [pcode2] => 41675441 [email] => xin.yang@xx.cn [selfName] => 邵兵 ) [1] => Array ( [hostName] => 杨新 [pcode2] => 41675441 [email] => xin.yang@xx.cn [selfName] => 邵兵 ) [2] => Array ( [hostName] => 中信国安科技控股有限公司 [pcode2] => 9730284461 [email] => liuxiao@gakj.xx.com [selfName] => 邵兵 ) [3] => Array ( [hostName] => 中信国安科技控股有限公司 [pcode2] => 9730284461 [email] => liuxiao@gakj.xx.com [selfName] => 邵兵 ) [4] => Array ( [hostName] => 刘惠 [pcode2] => 64068956 [email] => huijie.liu@xx.cn [selfName] => 邵兵 ) [5] => Array ( [hostName] => 刘惠 [pcode2] => 64068956 [email] => huijie.liu@xx.cn [selfName] => 邵兵 ) [6] => Array ( [hostName] => 刘凯南 [pcode2] => 14818360 [email] => kainan.liu_3@xx.cn [selfName] => 邵兵 ) [7] => Array ( [hostName] => 刘凯南 [pcode2] => 14818360 [email] => kainan.liu_3@xx.cn [selfName] => 邵兵 ) [8] => Array ( [hostName] => 宋纬奇 [pcode2] => 62947142 [email] => weiqi.song@xx.cn [selfName] => 邵兵 ) [9] => Array ( [hostName] => 宋纬奇 [pcode2] => 62947142 [email] => weiqi.song@xx.cn [selfName] => 邵兵 ) )

Array ( [0] => Array ( [hostName] => 杨新 [pcode2] => 41675441 [email] => xin.yang@xx.cn [selfName] => 邵兵 ) [2] => Array ( [hostName] => 中信国安科技控股有限公司 [pcode2] => 9730284461 [email] => liuxiao@gakj.xx.com [selfName] => 邵兵 ) [4] => Array ( [hostName] => 刘惠 [pcode2] => 64068956 [email] => huijie.liu@xx.cn [selfName] => 邵兵 ) [6] => Array ( [hostName] => 刘凯南 [pcode2] => 14818360 [email] => kainan.liu_3@xx.cn [selfName] => 邵兵 ) [8] => Array ( [hostName] => 宋纬奇 [pcode2] => 62947142 [email] => weiqi.song@xx.cn [selfName] => 邵兵 ) )

{"0":{"hostName":"\u6768\u65b0","pcode2":"41675441","email":"xin.yang@xx.cn","selfName":"\u90b5\u5175"},"2":{"hostName":"\u4e2d\u4fe1\u56fd\u5b89\u79d1\u6280\u63a7\u80a1\u6709\u9650\u516c\u53f8","pcode2":"9730284461","email":"liuxiao@gakj.xx.com","selfName":"\u90b5\u5175"},"4":{"hostName":"\u5218\u60e0","pcode2":"64068956","email":"huijie.liu@xx.cn","selfName":"\u90b5\u5175"},"6":{"hostName":"\u5218\u51ef\u5357","pcode2":"14818360","email":"kainan.liu_3@xx.cn","selfName":"\u90b5\u5175"},"8":{"hostName":"\u5b8b\u7eac\u5947","pcode2":"62947142","email":"weiqi.song@xx.cn","selfName":"\u90b5\u5175"}}

关于php的序列化的确是几年前才使用的技术,目前大家更多的是使用json_encode,且后者效率也比php的序列化高。

序列化也还是很有用的。上面的例子中主要是函数array_map()array_unique()的结合使用。

关于序列化和json编码的效率对比的文章,可以参考 https://3water.com/article/36177.htm

PS:本站还有两款比较简单实用的在线文本去重复工具,推荐给大家使用:

在线去除重复项工具:
http://tools.3water.com/code/quchong

在线文本去重复工具:
http://tools.3water.com/aideddesign/txt_quchong

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
php微信开发之关注事件
Jun 14 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 #PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 #PHP
ThinkPHP 3使用OSS的方法
Jul 19 #PHP
php命令行写shell实例详解
Jul 19 #PHP
php工具型代码之印章抠图
Jul 18 #PHP
php压缩文件夹最新版
Jul 18 #PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 #PHP
You might like
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
React Native 图片查看组件的方法
2018/03/01 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
3分钟学会一个Python小技巧
2018/11/23 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
六五普法规划实施方案
2014/03/21 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
2014年招商工作总结
2014/11/22 职场文书
小学六一主持词开场白
2015/05/28 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python
nginx日志格式分析和修改
2022/04/28 Servers