Разбор вложенного массива с помощью рекурсии
Есть пример разбора массива с помощью рекурсии, но мне не совсем понятна логика. Получается после разбора возвращается переменная $mass(на 9 строке) уже в разобранном виде. Как так получилось? Почему массив разобран если все должно было записаться в переменную $val?
function recurs($mass) {
if (is_array($mass)) {
$val = '';
foreach ($mass as $str) {
$val .= recurs($str);
}
return $val;
} else {
return $mass;
}
}
$arr = array(array('1312'),'312312','312312');
echo recurs($arr);
Ответы (1 шт):
В условии написано буквально следующее: если в переменной $mass передали именно массив, то... и в первых фигурных скобках рекурсивно обрабатывается этот массив с возможными вложенными в него массивами. Затем идёт иначе. То есть, иначе, если в переменной $mass передан не массив, возвращаем эту переменную. Не в разобранном виде, а просто интерпретируя эту переменную как строку. В случае else {...} с переменной ничего не делают, просто возвращают.