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);
        }