Я джаву в глаза не видел, но проверить же минутное дело
На VPS обычно не используют докер
<?php
$collection1 = '[{"id": 1, "count": 5}, {"id": 2, "count": 6}, {"id": 3, "count": 7}]';
$collection2 = '[{"id": 2, "price": 100}, {"id": 1, "price": 87}]';
function union(string $index, array ...$data): array {
$indexedData = array_map(fn(array $collection) => array_column($collection, null, $index), $data);
$indx = array_unique(array_reduce(
$indexedData,
fn(array $acc, array $collection) => array_merge($acc, array_keys($collection)),
[]
));
return array_reduce($indx, function(array $acc, int $indx) use($indexedData) {
$elements = array_filter(array_map(fn(array $data) => $data[$indx] ?? [], $indexedData));
$acc[$indx] = array_merge(...$elements);
return $acc;
}, []);
}
var_dump(
union('id',
json_decode($collection1, true),
json_decode($collection2, true))
// ,json_decode($collection3, true))
// ,json_decode($collection4, true))
);
логика :)