3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arX = Array('AAA' => 173.696, 'BBB' => 72.436, 'CCC' => 142.692); $arY = Array('AAA' => 127, 'DDD' => 72.333); $newArray = []; $callback = function($value, $key , $prefix) use (&$newArray) { if (!array_key_exists ($key , $newArray)) { $newArray[$key] = []; } $newArray[$key] += [$prefix => $value]; }; array_walk($arX , $callback , "X"); array_walk($arY , $callback , "Y"); var_dump($newArray);
based on rrZgF
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.21, 7.4.0 - 7.4.10, 8.0.0alpha1 - beta3
array(4) { ["AAA"]=> array(2) { ["X"]=> float(173.696) ["Y"]=> int(127) } ["BBB"]=> array(1) { ["X"]=> float(72.436) } ["CCC"]=> array(1) { ["X"]=> float(142.692) } ["DDD"]=> array(1) { ["Y"]=> float(72.333) } }