I would like to convert ($data
):
Array
(
[login] => Log in
[logout] => Log out
[label] => Array
(
[email] => [email protected]
[name] => Some name
)
[controllers] => Array
(
[page] => Array
(
[title_new] => New page
[title_edit] => Edit page
[submit_button] => Submit page
)
)
)
To ($result
):
Array
(
[login] => Log in
[logout] => Log out
[label[email]] => [email protected]
[label[name]] => Some name
[controllers[page][title_new]] => New page
[controllers[page][title_edit]] => Edit page
[controllers[page][submit_button]] => Submit page
)
The following code works "fine":
$data = some_data;
$result = array();
foreach ($data as $k => $v) {
if (is_array($v))
foreach ($v as $_k => $_v)
if (is_array($_v))
foreach ($_v as $__k => $__v)
if (is_array($__v))
foreach ($__v as $___k => $___v)
$result[$k.'['.$_k.']['.$__k.']['.$___k.']'] = $___v;
else
$result[$k.'['.$_k.']['.$__k.']'] = $__v;
else
$result[$k.'['.$_k.']'] = $_v;
else
$result[$k] = $v;
}
The code work nicely for four levels, and after that it returns "Array" as the value. I think I need recursion, but I would like for you to review my current code, and optionally present me with a solution to go even deeper.