PHP将二维数组某一个字段相同的数组合并起来的方法

这篇文章主要介绍了PHP将二维数组某一个字段相同的数组合并起来的方法,涉及PHP多维数组操作的相关技巧,需要的朋友可以参考下。

本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法,分享给大家供大家参考,具体如下:

例子:

  1. array(3) {
  2. [0]=>
  3. array(16) {
  4. ["id"]=>
  5. string(2) "42"
  6. ["uid"]=>
  7. string(2) "14"
  8. ["euid"]=>
  9. string(2) "56"
  10. ["did"]=>
  11. string(1) "1"
  12. ["nid"]=>
  13. string(1) "0"
  14. ["phonetime"]=>
  15. string(10) "1443927600"
  16. ["createtime"]=>
  17. string(10) "1443880619"
  18. ["type"]=>
  19. string(1) "3"
  20. ["status"]=>
  21. string(1) "0"
  22. ["atype"]=>
  23. string(1) "1"
  24. ["mtype"]=>
  25. string(1) "2"
  26. ["endtime"]=>
  27. string(1) "0"
  28. ["time"]=>
  29. string(10) "10月04日"
  30. ["date"]=>
  31. string(6) "周日"
  32. ["uname"]=>
  33. NULL
  34. ["album"]=>
  35. string(0) ""
  36. }
  37. [1]=>
  38. array(16) {
  39. ["id"]=>
  40. string(2) "40"
  41. ["uid"]=>
  42. string(2) "14"
  43. ["euid"]=>
  44. string(2) "56"
  45. ["did"]=>
  46. string(1) "1"
  47. ["nid"]=>
  48. string(1) "0"
  49. ["phonetime"]=>
  50. string(10) "1444359600"
  51. ["createtime"]=>
  52. string(10) "1444268595"
  53. ["type"]=>
  54. string(1) "3"
  55. ["status"]=>
  56. string(1) "0"
  57. ["atype"]=>
  58. string(1) "1"
  59. ["mtype"]=>
  60. string(1) "2"
  61. ["endtime"]=>
  62. string(1) "0"
  63. ["time"]=>
  64. string(10) "10月09日"
  65. ["date"]=>
  66. string(6) "周五"
  67. ["uname"]=>
  68. NULL
  69. ["album"]=>
  70. string(0) ""
  71. }
  72. [2]=>
  73. array(16) {
  74. ["id"]=>
  75. string(2) "43"
  76. ["uid"]=>
  77. string(1) "2"
  78. ["euid"]=>
  79. string(2) "56"
  80. ["did"]=>
  81. string(1) "1"
  82. ["nid"]=>
  83. string(1) "0"
  84. ["phonetime"]=>
  85. string(10) "1444359620"
  86. ["createtime"]=>
  87. string(10) "1444268595"
  88. ["type"]=>
  89. string(1) "3"
  90. ["status"]=>
  91. string(1) "0"
  92. ["atype"]=>
  93. string(1) "1"
  94. ["mtype"]=>
  95. string(1) "2"
  96. ["endtime"]=>
  97. string(1) "0"
  98. ["time"]=>
  99. string(10) "10月09日"
  100. ["date"]=>
  101. string(6) "周五"
  102. ["uname"]=>
  103. NULL
  104. ["album"]=>
  105. string(0) ""
  106. }
  107. }

现在想要对这个二维数组下的元素,time相同的合并到同一数组下,想要的效果为:

  1. array(2) {
  2. ["10月04日"]=>
  3. array(1) {
  4. [0]=>
  5. array(16) {
  6. ["id"]=>
  7. string(2) "42"
  8. ["uid"]=>
  9. string(2) "14"
  10. ["euid"]=>
  11. string(2) "56"
  12. ["did"]=>
  13. string(1) "1"
  14. ["nid"]=>
  15. string(1) "0"
  16. ["phonetime"]=>
  17. string(10) "1443927600"
  18. ["createtime"]=>
  19. string(10) "1443880619"
  20. ["type"]=>
  21. string(1) "3"
  22. ["status"]=>
  23. string(1) "0"
  24. ["atype"]=>
  25. string(1) "1"
  26. ["mtype"]=>
  27. string(1) "2"
  28. ["endtime"]=>
  29. string(1) "0"
  30. ["time"]=>
  31. string(10) "10月04日"
  32. ["date"]=>
  33. string(6) "周日"
  34. ["uname"]=>
  35. NULL
  36. ["album"]=>
  37. string(0) ""
  38. }
  39. }
  40. ["10月09日"]=>
  41. array(2) {
  42. [0]=>
  43. array(16) {
  44. ["id"]=>
  45. string(2) "40"
  46. ["uid"]=>
  47. string(2) "14"
  48. ["euid"]=>
  49. string(2) "56"
  50. ["did"]=>
  51. string(1) "1"
  52. ["nid"]=>
  53. string(1) "0"
  54. ["phonetime"]=>
  55. string(10) "1444359600"
  56. ["createtime"]=>
  57. string(10) "1444268595"
  58. ["type"]=>
  59. string(1) "3"
  60. ["status"]=>
  61. string(1) "0"
  62. ["atype"]=>
  63. string(1) "1"
  64. ["mtype"]=>
  65. string(1) "2"
  66. ["endtime"]=>
  67. string(1) "0"
  68. ["time"]=>
  69. string(10) "10月09日"
  70. ["date"]=>
  71. string(6) "周五"
  72. ["uname"]=>
  73. NULL
  74. ["album"]=>
  75. string(0) ""
  76. }
  77. [1]=>
  78. array(16) {
  79. ["id"]=>
  80. string(2) "43"
  81. ["uid"]=>
  82. string(1) "2"
  83. ["euid"]=>
  84. string(2) "56"
  85. ["did"]=>
  86. string(1) "1"
  87. ["nid"]=>
  88. string(1) "0"
  89. ["phonetime"]=>
  90. string(10) "1444359620"
  91. ["createtime"]=>
  92. string(10) "1444268595"
  93. ["type"]=>
  94. string(1) "3"
  95. ["status"]=>
  96. string(1) "0"
  97. ["atype"]=>
  98. string(1) "1"
  99. ["mtype"]=>
  100. string(1) "2"
  101. ["endtime"]=>
  102. string(1) "0"
  103. ["time"]=>
  104. string(10) "10月09日"
  105. ["date"]=>
  106. string(6) "周五"
  107. ["uname"]=>
  108. NULL
  109. ["album"]=>
  110. string(0) ""
  111. }
  112. }
  113. }

那么。。。代码很简单,没有想象的那么复杂,想要的结果是个三维数组

$result 为原二维数组

  1. $res = array(); //想要的结果
  2. foreach ($result as $k => $v) {
  3. $res[$v['time']][] = $v;
  4. }