3v4l.org

run code in 300+ PHP versions simultaneously
<?php $yaml = [ 'components' => [ [ 'cachet' => [ 'componentgroup' => 'FOO', 'componentname' => 'BAR' ] ], [ 'cachet' => [ 'componentgroup' => 'Key1', 'componentname' => 'Value1' ] ], [ 'cachet' => [ 'componentgroup' => 'Key2', 'componentname' => 'Value2' ] ], [ 'cachet' => [ 'componentgroup' => 'FOO', 'componentname' => 'BAZ' ] ], [ 'cachet' => [ 'componentgroup' => 'Key3', 'componentname' => 'Value3' ] ] ] ]; $yamlMap = []; foreach ($yaml['components'] as $yamlComponent) { $key = $yamlComponent['cachet']['componentgroup']; $value = $yamlComponent['cachet']['componentname']; if (isset($yamlMap[$key])) { if (is_array($yamlMap[$key])) { $yamlMap[$key][] = $value; } else { $yamlMap[$key] = [$yamlMap[$key], $value]; } } else { $yamlMap[$key] = $value; } } var_export($yamlMap);

preferences:
32.04 ms | 404 KiB | 5 Q