Мне нужно объединить трехмерный массив с двумерным массивом на основе общего значения 'id.'
В приведенном ниже примере «Джордж Вашингтон» имеет «id» 1. Мне нужно добавить его «значение», которое находится во втором массиве, где «id» также равно 1.
Идентификатор "Джона Адамса" равен 2, чего нет во втором массиве. В результате его 'значение' должно быть установлено в 0 (или NULL).
Окончательный результат представляет собой трехмерный массив, в котором «значение» добавлено к каждому элементу в исходном массиве.
Массив # 1
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1
[name] => "George Washington"
)
[total] => 8
[average] => 2.5
)
[1] => Array
(
[0] => Array
(
[id] => 2
[name] => "John Adams"
)
[total] => 6
[average] => 3.0
)
[2] => Array
(
[0] => Array
(
[id] => 5
[name] => "James Monroe"
)
[total] => 9
[average] => 2.0
)
)
Массив # 2
Array
(
[0] => Array
(
[id] => 1
[value] => 12
)
[1] => Array
(
[id] => 5
[value] => 18
)
)
Желаемый результат:
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1
[name] => "George Washington"
)
[total] => 8
[average] => 2.5
[value] => 12
)
[1] => Array
(
[0] => Array
(
[id] => 2
[name] => "John Adams"
)
[total] => 6
[average] => 3.0
[value] => 0
)
[2] => Array
(
[0] => Array
(
[id] => 5
[name] => "James Monroe"
)
[total] => 9
[average] => 2.0
[value] => 18
)
)
Что я пробовал до сих пор:
Я разделил все значения 'id' из первого массива в новый массив с именем $ ids. Затем, просматривая элементы во втором массиве, я проверяю, находится ли 'id' из второго массива в массиве $ ids.
Но потом я застрял, потому что не знаю, как указать, какой элемент в первом массиве должен получить новое 'значение'. Кроме того, это выглядит как грязное решение из-за накладных расходов, связанных с созданием массива $ ids.