VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP实现数组根据某个字段进行水平合并,横向合并案例分析

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

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

需求

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

数组a

  1. Array 
  2.   [0] => Array 
  3.     ( 
  4.       [date] => 2019-04-02 
  5.       [today_pay_money] => 168.00 
  6.       [today_pay_num] => 1 
  7.       [yesterday_pay_money] => 999.00 
  8.       [yesterday_pay_num] => 1 
  9.     ) 
  10.   [1] => Array 
  11.     ( 
  12.       [date] => 2019-04-09 
  13.       [today_pay_money] => 0.01 
  14.       [today_pay_num] => 1 
  15.       [yesterday_pay_money] => 0.00 
  16.       [yesterday_pay_num] => 0 
  17.     ) 
  18.   [2] => Array 
  19.     ( 
  20.       [date] => 2019-05-05 
  21.       [today_pay_money] => 0.01 
  22.       [today_pay_num] => 1 
  23.       [yesterday_pay_money] => 2.00 
  24.       [yesterday_pay_num] => 1 
  25.     ) 
  26.   [3] => Array 
  27.     ( 
  28.       [date] => 2019-05-11 
  29.       [today_pay_money] => 0.00 
  30.       [today_pay_num] => 0 
  31.       [yesterday_pay_money] => 
  32.       [yesterday_pay_num] => 1 
  33.     ) 

数组B

  1. Array 
  2.   [0] => Array 
  3.     ( 
  4.       [date] => 2019-05-07 
  5.       [today_pay_money1] => 0 
  6.       [today_pay_num1] => 0 
  7.       [yesterday_pay_money1] => 0 
  8.       [yesterday_pay_num1] => 0 
  9.     ) 
  10.   [1] => Array 
  11.     ( 
  12.       [date] => 2019-05-11 
  13.       [today_pay_money1] => 0 
  14.       [today_pay_num1] => 0 
  15.       [yesterday_pay_money1] => 1 
  16.       [yesterday_pay_num1] => 1 
  17.     ) 

需要格式

  1. Array 
  2.   [2019-04-02] => Array 
  3.     ( 
  4.       [date] => 2019-04-02 
  5.       [today_pay_money] => 168.00 
  6.       [today_pay_num] => 1 
  7.       [yesterday_pay_money] => 999.00 
  8.       [yesterday_pay_num] => 1 
  9.     ) 
  10.   [2019-04-09] => Array 
  11.     ( 
  12.       [date] => 2019-04-09 
  13.       [today_pay_money] => 0.01 
  14.       [today_pay_num] => 1 
  15.       [yesterday_pay_money] => 0.00 
  16.       [yesterday_pay_num] => 0 
  17.     ) 
  18.   [2019-05-05] => Array 
  19.     ( 
  20.       [date] => 2019-05-05 
  21.       [today_pay_money] => 0.01 
  22.       [today_pay_num] => 1 
  23.       [yesterday_pay_money] => 2.00 
  24.       [yesterday_pay_num] => 1 
  25.     ) 
  26.   [2019-05-11] => Array 
  27.     ( 
  28.       [date] => 2019-05-11 
  29.       [today_pay_money] => 0.00 
  30.       [today_pay_num] => 0 
  31.       [yesterday_pay_money] => 
  32.       [yesterday_pay_num] => 1 
  33.       [today_pay_money1] => 0 
  34.       [today_pay_num1] => 0 
  35.       [yesterday_pay_money1] => 1 
  36.       [yesterday_pay_num1] => 1 
  37.     ) 
  38.   [2019-05-07] => Array 
  39.     ( 
  40.       [date] => 2019-05-07 
  41.       [today_pay_money1] => 0 
  42.       [today_pay_num1] => 0 
  43.       [yesterday_pay_money1] => 0 
  44.       [yesterday_pay_num1] => 0 
  45.     ) 

代码实现

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

  1. $total = array_merge($a,$b)); 
  2. $res = array(); 
  3. foreach ($total as $k => $v) { 
  4.   if (emptyempty($res[$v['date']])) 
  5.   $res[$v['date']] = $v
  6.   else 
  7.   $res[$v['date']]= array_merge($res[$v['date']],$v); 
  8. }
  9.  

出处:http://www.phpfensi.com/php/20211227/19263.html


相关教程