当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-19 19:30:33 浏览: 评论:0 

这篇文章主要介绍了PHP实现的多维数组去重操作,结合实例形式分析了php序列化json字符串及数组转换、去重等相关操作技巧,需要的朋友可以参考下。

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

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

  1. <?php 
  2. $str = '{ 
  3.   "status": 0, 
  4.   "result": [ 
  5.     { 
  6.       "hostName""杨新"
  7.       "pcode2""41675441"
  8.       "email""xin.yang@xx.cn"
  9.       "selfName""邵兵" 
  10.     }, 
  11.     { 
  12.       "hostName""杨新"
  13.       "pcode2""41675441"
  14.       "email""xin.yang@xx.cn"
  15.       "selfName""邵兵" 
  16.     }, 
  17.     { 
  18.       "hostName""中信国安科技控股有限公司"
  19.       "pcode2""9730284461"
  20.       "email""liuxiao@gakj.xx.com"
  21.       "selfName""邵兵" 
  22.     }, 
  23.     { 
  24.       "hostName""中信国安科技控股有限公司"
  25.       "pcode2""9730284461"
  26.       "email""liuxiao@gakj.xx.com"
  27.       "selfName""邵兵" 
  28.     }, 
  29.     { 
  30.       "hostName""刘惠"
  31.       "pcode2""64068956"
  32.       "email""huijie.liu@xx.cn"
  33.       "selfName""邵兵" 
  34.     }, 
  35.     { 
  36.       "hostName""刘惠"
  37.       "pcode2""64068956"
  38.       "email""huijie.liu@xx.cn"
  39.       "selfName""邵兵" 
  40.     }, 
  41.     { 
  42.       "hostName""刘凯南"
  43.       "pcode2""14818360"
  44.       "email""kainan.liu_3@xx.cn"
  45.       "selfName""邵兵" 
  46.     }, 
  47.     { 
  48.       "hostName""刘凯南"
  49.       "pcode2""14818360"
  50.       "email""kainan.liu_3@xx.cn"
  51.       "selfName""邵兵" 
  52.     }, 
  53.     { 
  54.       "hostName""宋纬奇"
  55.       "pcode2""62947142"
  56.       "email""weiqi.song@xx.cn"
  57.       "selfName""邵兵" 
  58.     }, 
  59.     { 
  60.       "hostName""宋纬奇"
  61.       "pcode2""62947142"
  62.       "email""weiqi.song@xx.cn"
  63.       "selfName""邵兵" 
  64.     } 
  65.   ], 
  66.   "content_type""application/json" 
  67. }'; 
  68. $res = json_decode($str,true); 
  69. echo 'num: '.count($res['result']); 
  70. print_r($res['result']); 
  71. echo "</br></br></br>"
  72. $rrr = $res['result']; 
  73. $serializeArrs = array_map('serialize',$rrr); 
  74. $uniqueArrs = array_unique($serializeArrs); 
  75. $unserializeArrs = array_map('unserialize',$uniqueArrs); 
  76. print_r($unserializeArrs); 
  77. echo "</br></br></br>"
  78. echo json_encode($unserializeArrs); 
  79. exit

运行结果:

  1. 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] => 邵兵 ) ) 
  2.  
  3.  
  4. 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] => 邵兵 ) ) 
  5.  
  6.  
  7. {"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()的结合使用。

Tags: PHP多维数组去重

分享到: