<?php
function array_union(&$result, $arr, $name)
{
foreach ($arr as $key => $value) {
if (!isset($result[$key])) $result[$key] = []; $result[$key][$name] = $value;
}
}
$resultado = [];
$x = ['a' => 1, 'b' => 2, 'c' => 3];
$y = ['b' => 4, 'd' => 5];
array_union($resultado, $x, 'x');
array_union($resultado, $y, 'y');
PD9waHAKCmZ1bmN0aW9uIGFycmF5X3VuaW9uKCYkcmVzdWx0LCAkYXJyLCAkbmFtZSkKewogICAgZm9yZWFjaCAoJGFyciBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgIGlmICghaXNzZXQoJHJlc3VsdFska2V5XSkpICRyZXN1bHRbJGtleV0gPSBbXTsKICAgICAgICAkcmVzdWx0WyRrZXldWyRuYW1lXSA9ICR2YWx1ZTsKICAgIH0KfQoKJHJlc3VsdGFkbyA9IFtdOwokeCA9IFsnYScgPT4gMSwgJ2InID0+IDIsICdjJyA9PiAzXTsKJHkgPSBbJ2InID0+IDQsICdkJyA9PiA1XTsKCmFycmF5X3VuaW9uKCRyZXN1bHRhZG8sICR4LCAneCcpOwphcnJheV91bmlvbigkcmVzdWx0YWRvLCAkeSwgJ3knKTsKCnByaW50X3IoJHJlc3VsdGFkbyk7