3v4l.org

run code in 300+ PHP versions simultaneously
<?php function reduceMultidimensionalArraysToOneDimension(array &$result, array $messages, $preffix) { foreach ($messages as $field => $msg) { if (is_array($msg)) { reduceMultidimensionalArraysToOneDimension($result, $msg, $preffix . $field . '_'); } else { $result[$preffix . $field] = $msg; } } } $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 reference\n"; $time = microtime(true); $result = array(); reduceMultidimensionalArraysToOneDimension($result, $messages, 'preffix_'); $time = microtime(true) - $time; echo 'reference() took ' . $time . " seconds\n";

preferences:
25.82 ms | 402 KiB | 5 Q