3v4l.org

run code in 500+ PHP versions simultaneously
<?php class FlattenArray { private array $mapped = []; public function __construct(array $input) { $this->mapped = array_map(fn ($currentKey) => $this->mapRecursive(explode('_', $currentKey), $input[$currentKey]), array_keys($input)); } private function mapRecursive(array $keys, $value) { if (empty($keys)) return; return array_fill_keys( [array_shift($keys)], $this->mapRecursive($keys, $value) ?? $value ); } public function joinAndFlatten() { return $this->mapped; } } var_dump((new FlattenArray(['a_a' => '2', 'a_b' => '333', 'c_c' => '123']))->joinAndFlatten());

preferences:
84.26 ms | 877 KiB | 5 Q