经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
来源:jb51  时间:2019/10/8 13:15:19  对本文有异议

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

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

需求

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

数组a

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

数组B

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

需要格式

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

代码实现

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

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

更多关于PHP相关内容感兴趣的读者可查看jb51专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号