«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как рассчитать глубину вложенных массивов в PHP?

Как рассчитать глубину вложенных массивов в PHP?

Опубликовано 18 ноября 2024 г.
Просматривать:665

How Can I Calculate the Depth of Nested Arrays in PHP?

Определение глубины вложенных массивов в PHP

Массивы — это универсальная структура данных в PHP, позволяющая хранить элементы в других массивах. Эта функция обеспечивает сложную организацию данных, но может быть сложно определить максимальный уровень вложенности массива в заданной структуре.

Для решения этой проблемы можно разработать функцию, которая вычисляет глубину массива, указывая максимальный уровень вложенности массивов. Если массив не содержит вложенных массивов, он возвращает 1; если он содержит один или несколько вложенных массивов, он возвращает 2; и так далее.

Альтернативное решение для бесконечной рекурсии:

Один из способов найти глубину массива — использовать print_r() для проверки бесконечной рекурсии. Эта функция генерирует строковое представление массива, а ее выходные отступы могут выявить глубину структуры.

function array_depth($array) {
    $max_indentation = 1;

    $array_str = print_r($array, true);
    $lines = explode("\n", $array_str);

    foreach ($lines as $line) {
        $indentation = (strlen($line) - strlen(ltrim($line))) / 4;

        if ($indentation > $max_indentation) {
            $max_indentation = $indentation;
        }
    }

    return ceil(($max_indentation - 1) / 2)   1;
}

Это решение обеспечивает точное определение глубины массива, избегая потенциальных ошибок, связанных с рекурсивными функциями.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3