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, '_'));

preferences:
129.95 ms | 1259 KiB | 5 Q