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 相关文章推荐
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
8个PHP数组面试题
Jun 23 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
Python实现的简单算术游戏实例
2015/05/26 Python
python中requests小技巧
2017/05/10 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
详解Python实现进度条的4种方式
2020/01/15 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
详解rem 适配布局
2018/10/31 HTML / CSS
销售文员的岗位职责
2013/11/20 职场文书
党员思想汇报范文
2013/12/30 职场文书
《学会待客》教学反思
2014/02/22 职场文书
业务内勤岗位职责
2014/04/30 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
整改报告格式
2014/11/06 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS