【发布时间】:2011-06-12 12:11:37
【问题描述】:
我有以下数组(其中包含多个数据库查询的结果 - 在示例中只有 2 个,但可以更多。 合并需要由指定的列(在本例中为 date 列)完成。我们将此称为 merge_by 列。
Array
(
[0] => Array
(
[0] => Array
(
[date] => 2011-01-17
[col-1] => 58
[col-2] => 54
)
[1] => Array
(
[date] => 2011-01-19
[col-1] => 50
[col-2] => 61
)
[2] => Array
(
[date] => 2011-01-20
[col-1] => 44
[col-2] => 22
)
[3] => Array
(
[date] =>
[col-1] => 448
[col-2] => 196
)
[1] => Array
(
[0] => Array
(
[date] => 2011-01-17
[col-3] => 1489
)
[1] => Array
(
[date] => 2011-01-18
[col-3] => 1534
)
[2] => Array
(
[date] =>
[col-3] => 1534
)
)
)
我正在努力实现
Array
(
[0] => Array
(
[date] => 2011-01-17
[col-1] => 58
[col-2] => 54
[col-3] => 1489
)
[1] => Array
(
[date] => 2011-01-18
[col-1] =>
[col-2] =>
[col-3] => 1534
)
[2] => Array
(
[date] => 2011-01-19
[col-1] => 50
[col-2] => 61
[col-3] =>
)
[3] => Array
(
[date] => 2011-01-20
[col-1] => 44
[col-2] => 22
[col-3] =>
)
[4] => Array
(
[date] =>
[col-1] => 448
[col-2] => 196
[col-3] => 1534
)
需要考虑的事项:
- merge_by 可以采用 null 或空字符串值
- merge_by 在要合并的数组中不会有相同的值
- 2 个查询中的结果数量会有所不同,并且 merge_by 值可能会有所不同,因此可能会遇到
$arr[0][1][date] != $arr[1][1][date] - LE:除了 merge_by 列之外,所有其他列都将彼此不同,因此您不会有
$arr[0][0][col-2]和$arr[1][0][col-2]
所以这样做的目的是将某些查询的列合并为一个公共列。
来自太多数据库的太多数据来自太多列,无法仅从 SQL 中获取。我知道...预先计算值 :) ...现在不是一个选项。
当列数和这些索引匹配时,我已设法使其工作。从那以后尝试了很多选择,所以现在我有一个不值得作为示例添加的版本。
那么有人知道可以实现上述功能的功能吗?
谢谢
【问题讨论】:
标签: php arrays join merge multidimensional-array