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 数组入门教程小结
May 20 PHP
php引用返回与取消引用的详解
Jun 08 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 PHP
PHP项目多语言配置平台实现过程解析
May 18 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
用libtemplate实现静态网页生成
2006/10/09 PHP
使用无限生命期Session的方法
2006/10/09 PHP
在PHP中使用模板的方法
2008/05/24 PHP
PHP 函数语法介绍一
2009/06/14 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
javascript常用函数(1)
2015/11/04 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python实现调度算法代码详解
2017/12/01 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
浅析Python迭代器的高级用法
2020/07/16 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
路政管理毕业自荐书范文
2014/02/10 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
考察邀请函范文
2015/01/31 职场文书