<?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