全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP二维数组去重算法

需求

现在有下面一组二维数组:

array(8) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青叶"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青叶"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "足球"
 }
 [6]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}

需要将处于第二维键名为name,其值相同的数组的value合并,形成一个新的数组。

比如上面代码中的name为fileds_510的两个二维数组,就应该合并为一个值为足球,棒球的数组。

思路

提到数组,再PHP中我们首先想到了循环,那么这里显然比较适合使用for循环处理,与冒泡排序相似,一个个比较,最好处理。

代码

代码如下:

$public_info = 数组;
for ($i=0;$i<count($public_info);$i++) {
  for ($j=$i+1;$j<count($public_info);$j++) {
    if ($public_info[$j]['name'] == $public_info[$i]['name']) {
      $public_info[$i]['value'] .= ',' . $public_info[$j]['value'];
      unset($public_info[$j]);
    }
  }
}

执行结果:

array(7) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青叶"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青叶"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(13) "足球,棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}

总结

需求已搞定,只要遇到数组,我们第一个想到的除了现成的PHP方法之外,就是循环,不管是foreach还是for,上面例子是我项目处理的一个自定义表单编辑的小段过程,希望对大家思路有帮助。


# php  # 二维数组去重  # 二维数组合并  # 二维数组  # 去重  # PHP中array_keys和array_unique函数源码的分析  # php数组函数序列之array_unique() - 去除数组中重复的元素值  # php array_unique之后json_encode需要注意  # php下判断数组中是否存在相同的值array_unique  # PHP数组去重的更快实现方式分析  # PHP编程快速实现数组去重的方法详解  # php 数组元素快速去重  # php二维数组合并及去重复的方法  # PHP基于array_unique实现二维数组去重  # 青叶  # 我是  # 合肥  # 第一个  # 自定义  # 并为  # 表单  # 值为  # 小段  # 键名  # phone  # string  # strong  # brush  # class  # array  # pre  # gt  # br 


相关文章: *服务器网站为何频现安全漏洞?  制作旅游网站html,怎样注册旅游网站?  如何配置支付宝与微信支付功能?  焦点电影公司作品,电影焦点结局是什么?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  个人网站制作流程图片大全,个人网站如何注销?  北京企业网站设计制作公司,北京铁路集团官方网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  高端建站如何打造兼具美学与转化的品牌官网?  黑客如何利用漏洞与弱口令入侵网站服务器?  深圳网站制作培训,深圳哪些招聘网站比较好?  专业商城网站制作公司有哪些,pi商城官网是哪个?  常州企业建站如何选择最佳模板?  制作电商网页,电商供应链怎么做?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何有效防御Web建站篡改攻击?  如何在阿里云服务器自主搭建网站?  建站之星代理费用多少?最新价格详情介绍  如何用IIS7快速搭建并优化网站站点?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  网站微信制作软件,如何制作微信链接?  大同网页,大同瑞慈医院官网?  代购小票制作网站有哪些,购物小票的简要说明?  大连 网站制作,大连天途有线官网?  家庭服务器如何搭建个人网站?  建站主机选哪家性价比最高?  如何配置WinSCP新建站点的密钥验证步骤?  南宁网站建设制作定制,南宁网站建设可以定制吗?  ,制作一个手机app网站要多少钱?  如何在万网主机上快速搭建网站?  如何用免费手机建站系统零基础打造专业网站?  如何在建站主机中优化服务器配置?  想学网站制作怎么学,建立一个网站要花费多少?  南京网站制作费用,南京远驱官方网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  外贸公司网站制作哪家好,maersk船公司官网?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  建站主机CVM配置优化、SEO策略与性能提升指南  如何在阿里云虚拟主机上快速搭建个人网站?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  宝塔建站助手安装配置与建站模板使用全流程解析  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  Android自定义listview布局实现上拉加载下拉刷新功能  如何零基础在云服务器搭建WordPress站点?  兔展官网 在线制作,怎样制作微信请帖? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。