@denism300

Как правильно написать рекурсивную функцию?

Суть: на входе есть массив (одномерный или многомерный), нужно посчитать количество элементов, значения которых не равны -1.
Написал такую функцию, но она не работает корректно.
function timetable_empty($arr)
{
    $i = 0;
    foreach ($arr as $a) {
        if (is_array($a)) {
            timetable_empty($a);
        } else {
            if ($a != -1) {
                $i++;
            }
            return $i;
        }
    }
}

Что нужно исправить, чтобы заработало?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
@denism300 Автор вопроса
Сам разобрался:
function timetable_empty($arr)
{
    $i = 0;
    foreach ($arr as $a) {
        if (is_array($a)) {
            $i = timetable_empty($a);
        } else {
            if ($a != -1) {
                $i++;
            }
        }
    }
    return $i;
}
Ответ написан
@KingstonKMS
return не в том месте, и почему результат функции не присваивается какой либо переменной?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы