3v4l.org

run code in 300+ PHP versions simultaneously
<?php function reduceMultidimensionalArraysToOneDimension(array $messages, $preffix) { $result = array(); foreach ($messages as $field => $msg) { if (is_array($msg)) { $result = array_merge($result, reduceMultidimensionalArraysToOneDimension($msg, $preffix . $field . '_')); } else { $result[$preffix . $field] = $msg; } } return $result; } $messages = array( 'second1' => array( 'm1' => 'lorem ipusum', 'third1' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', 'm3' => 'lorem ipusum', 'third2' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm4' => 'lorem ipusum', ), 'm1' => 'lorem ipusum', 'second2' => array( 'm1' => 'lorem ipusum', 'third1' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', 'm3' => 'lorem ipusum', 'third2' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm4' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', ); echo "Starting array_merge\n"; $time = microtime(true); $result = reduceMultidimensionalArraysToOneDimension($messages, 'preffix_'); $time = microtime(true) - $time; print_r($result); echo 'array_merge() took ' . $time . " seconds\n";

preferences:
38.62 ms | 402 KiB | 5 Q