Рекурсивная функция для перебора многомерного массива

lottaSobaka

Новичок
Имеется n-мерный ассоциативный массив, например:
$input = array(
'element11' => 2,
'element12' => array(
'element21' => array(
'element31' => 5,
'element32' => 2
),
'element22' => 1,
'element23' => 3
)
);
Требуется создать функцию для формирования массива такой же структуры, а значение = значение исходного массива * 2.
Если использовать в функции echo, то массив проходится и результаты выводятся правильно. Но сформировать функцией результирующий массив и вернуть его не получается:
function recursive($input, $keys = 'result') {
if (is_array($input)) {
$$keys = array();
foreach ($input as $key => $value) {
$current_key = $keys."['".$key."']";
$$current_key = recursive($value, $current_key);
}
} else {
$$keys = $input*2;
// echo $$keys;
}
return $$keys;
}
echo recursive($input);
 

Фанат

oncle terrible
Команда форума
В коде написана адская ерунда.
Особенно, когда в в функцию пытаемся передать не переменную, а РНР код.
А вот это вот $$keys - скорее смешно.

Непонятно такое отвращение автора к переменной $value
 
Сверху