PHP二维数组去重算法


Posted in PHP onDecember 17, 2016

需求

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

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 相关文章推荐
实用函数5
Nov 08 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
php 中文和编码判断代码
May 16 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php如何实现只替换一次或N次
Oct 29 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
php服务器的系统详解
Oct 12 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
php格式化时间戳
Dec 17 #PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 #PHP
简单解决微信文章图片防盗链问题
Dec 17 #PHP
PHP 7.1新特性的汇总介绍
Dec 16 #PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 #PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 #PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 #PHP
You might like
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
初识ThinkPHP控制器
2016/04/07 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
javascript读写json示例
2014/04/11 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
keras 多gpu并行运行案例
2020/06/10 Python
应聘美工求职信
2013/11/07 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
投资合作协议书范本
2014/04/17 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
公司文体活动总结
2015/05/07 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
在pyCharm中下载第三方库的方法
2021/04/18 Python