PersonalAngel
@PersonalAngel

Как поменять сам многомерный массив, при возведении его элементов в квадрат (задача с рекурсией)?

Условия задачи: дан многомерный массив произвольного уровня вложенности, возведите все элементы-числа этого массива в квадрат.
Я сделала код со вспомогательным массивом, а если допустим, мне будет нужно менять массив исходный, как это можно сделать?
$arr = [1, [2, 7, 8], [3, 4], [5, [6, 7]]];


function getSquare($arr) { 
$res = [];
	foreach($arr as $elem) {
		if(is_array($elem)) {
			array_push($res, getSquare($elem));
		} else {
			array_push($res, $elem*$elem);
		}
	}
	return $res;
}

var_dump(getSquare($arr));
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
@galaxy
Передавать все по ссылке просто:
function getSquare(&$arr) {
  foreach($arr as $i => &$elem) {
    if(is_array($elem)) {
      getSquare($elem);
    } else {
      $arr[$i] = $elem*$elem;
    }
  }
  return $arr;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы