Задать вопрос
@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;
        }
    }
}

Что нужно исправить, чтобы заработало?
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 не в том месте, и почему результат функции не присваивается какой либо переменной?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽