PHP实现数组根据某个字段进行水平合并,横向合并案例分析


Posted in PHP onOctober 08, 2019

本文实例讲述了PHP实现数组根据某个字段进行水平合并,横向合并。分享给大家供大家参考,具体如下:

PHP数组水平合并,横向合并,两条数据合并成一行

需求

将两个素组中日期相同的合并成一行

数组a

Array
(
  [0] => Array
    (
      [date] => 2019-04-02
      [today_pay_money] => 168.00
      [today_pay_num] => 1
      [yesterday_pay_money] => 999.00
      [yesterday_pay_num] => 1
    )
  [1] => Array
    (
      [date] => 2019-04-09
      [today_pay_money] => 0.01
      [today_pay_num] => 1
      [yesterday_pay_money] => 0.00
      [yesterday_pay_num] => 0
    )
  [2] => Array
    (
      [date] => 2019-05-05
      [today_pay_money] => 0.01
      [today_pay_num] => 1
      [yesterday_pay_money] => 2.00
      [yesterday_pay_num] => 1
    )
  [3] => Array
    (
      [date] => 2019-05-11
      [today_pay_money] => 0.00
      [today_pay_num] => 0
      [yesterday_pay_money] =>
      [yesterday_pay_num] => 1
    )
)

数组B

Array
(
  [0] => Array
    (
      [date] => 2019-05-07
      [today_pay_money1] => 0
      [today_pay_num1] => 0
      [yesterday_pay_money1] => 0
      [yesterday_pay_num1] => 0
    )
  [1] => Array
    (
      [date] => 2019-05-11
      [today_pay_money1] => 0
      [today_pay_num1] => 0
      [yesterday_pay_money1] => 1
      [yesterday_pay_num1] => 1
    )
)

需要格式

Array
(
  [2019-04-02] => Array
    (
      [date] => 2019-04-02
      [today_pay_money] => 168.00
      [today_pay_num] => 1
      [yesterday_pay_money] => 999.00
      [yesterday_pay_num] => 1
    )
  [2019-04-09] => Array
    (
      [date] => 2019-04-09
      [today_pay_money] => 0.01
      [today_pay_num] => 1
      [yesterday_pay_money] => 0.00
      [yesterday_pay_num] => 0
    )
  [2019-05-05] => Array
    (
      [date] => 2019-05-05
      [today_pay_money] => 0.01
      [today_pay_num] => 1
      [yesterday_pay_money] => 2.00
      [yesterday_pay_num] => 1
    )
  [2019-05-11] => Array
    (
      [date] => 2019-05-11
      [today_pay_money] => 0.00
      [today_pay_num] => 0
      [yesterday_pay_money] =>
      [yesterday_pay_num] => 1
      [today_pay_money1] => 0
      [today_pay_num1] => 0
      [yesterday_pay_money1] => 1
      [yesterday_pay_num1] => 1
    )
  [2019-05-07] => Array
    (
      [date] => 2019-05-07
      [today_pay_money1] => 0
      [today_pay_num1] => 0
      [yesterday_pay_money1] => 0
      [yesterday_pay_num1] => 0
    )
)

代码实现

先将a,b数组合并,判断当前日期下是否空,空的话直接赋值,不空的话,将已有素组和当前数组合并

$total = array_merge($a,$b));
$res = array();
foreach ($total as $k => $v) {
  if (empty($res[$v['date']]))
  $res[$v['date']] = $v;
  else
  $res[$v['date']]= array_merge($res[$v['date']],$v);
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
扩展你的 PHP 之入门篇
Dec 04 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP发送AT指令实例代码
May 26 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 #PHP
PHP7 安装event扩展的实现方法
Oct 08 #PHP
thinkphp5+layui实现的分页样式示例
Oct 08 #PHP
调试php程序的简单步骤
Oct 04 #PHP
用php定义一个数组最简单的方法
Oct 04 #PHP
php输出文字乱码的解决方法
Oct 04 #PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 #PHP
You might like
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
银行实习人员自我鉴定
2013/09/22 职场文书
消防安全责任书范本
2014/04/15 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
五一放假通知怎么写
2015/08/18 职场文书
班级管理经验交流材料
2015/11/02 职场文书
修辞手法有哪些?
2019/08/29 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android