【发布时间】:2019-01-15 15:05:54
【问题描述】:
我有两个数组:
Array
(
[0] => stdClass Object
(
[data] => 0
[duration] => 1382
[month] => 3
)
[1] => stdClass Object
(
[data] => 0
[duration] => 2649
[month] => 4
)
[2] => stdClass Object
(
[data] => 176.30260467529297
[duration] => 3312
[month] => 5
)
[3] => stdClass Object
(
[data] => 2214.396824836731
[duration] => 0
[month] => 6
)
[4] => stdClass Object
(
[data] => 3762.13547706604
[duration] => 3394
[month] => 8
)
)
Array
(
[0] => stdClass Object
(
[count1] => 2426
[count2] => 66
[month] => 5
)
[1] => stdClass Object
(
[count1] => 7550
[count2] => 773
[month] => 6
)
[2] => stdClass Object
(
[count1] => 13288
[count2] => 1536
[month] => 7
)
[3] => stdClass Object
(
[count1] => 3596
[count2] => 762
[month] => 8
)
)
我想合并它们,以便给定month 的所有属性都在一起。期望的结果:
Array
(
[0] => stdClass Object
(
[data] => 0
[duration] => 1382
[month] => 3
)
[1] => stdClass Object
(
[data] => 0
[duration] => 2649
[month] => 4
)
[2] => stdClass Object
(
[data] => 176.30260467529297
[duration] => 3312
[count1] => 2426
[count2] => 66
[month] => 5
)
[3] => stdClass Object
(
[data] => 2214.396824836731
[duration] => 0
[count1] => 7550
[count2] => 773
[month] => 6
)
[4] => stdClass Object
(
[count1] => 13288
[count2] => 1536
[month] => 7
)
[5] => stdClass Object
(
[data] => 3762.13547706604
[duration] => 3394
[count1] => 3596
[count2] => 762
[month] => 8
)
)
当然,我想我可以通过两个讨厌的循环来做到这一点,通过将月份设置为公共表的键并将所有内容都塞进去,我猜。我一直在寻找更优雅的解决方案。
【问题讨论】:
-
将月份作为键和数组而不是对象,这将是对
array_merge_recursive()的简单调用。 -
当然但是...如果我必须进行循环以将两个对象数组转换为以
months为键的数组,我不妨在循环中进行合并工作不要您认为 ? :D -
这在一定程度上取决于数据源是什么。
标签: php arrays multidimensional-array merge