3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = ['a_a' => '2', 'a_b' => '333', 'c_c' => '123']; function flattenToMultiDimensional(array $array, $delimiter = '.') { $result = []; foreach ($array as $notations => $value) { // extract keys $keys = explode($delimiter, $notations); // reverse keys for assignments $keys = array_reverse($keys); // set initial value $lastVal = $value; foreach ($keys as $key) { // wrap value with key over each iteration $lastVal = [ $key => $lastVal ]; } // merge result $result = array_merge_recursive($result, $lastVal); } return $result; } var_export(flattenToMultiDimensional($array, '_'));
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array ( 'a' => array ( 'a' => '2', 'b' => '333', ), 'c' => array ( 'c' => '123', ), )

preferences:
94.73 ms | 1256 KiB | 4 Q