У меня есть следующий массив (который содержит результаты нескольких запросов к базе данных - в примере только 2, но может быть больше.
Объединение должно быть выполнено указанным столбцом (в этом случае столбец дата ). Давайте назовем этот столбец 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 может принимать нулевые или пустые строковые значения
- 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. Я знаю ... предварительно рассчитать значения :) ... сейчас не вариант.
Мне удалось заставить его работать, когда количество столбцов и индексы этих совпадают. С тех пор перепробовал много вариантов, поэтому сейчас у меня есть версия, недостойная добавления ее в качестве примера.
Так кто-нибудь имеет представление о функции, которая может достичь вышеуказанного?
Спасибо