"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso calcular a profundidade de arrays aninhados em PHP?

Como posso calcular a profundidade de arrays aninhados em PHP?

Publicado em 2024-11-18
Navegar:596

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

Determinando a profundidade de arrays aninhados em PHP

Arrays são uma estrutura de dados versátil em PHP, permitindo que elementos sejam armazenados dentro de outros arrays. Esse recurso permite a organização complexa de dados, mas pode ser um desafio determinar o nível máximo de aninhamento de array dentro de uma determinada estrutura.

Para resolver isso, pode ser desenvolvida uma função que calcula a profundidade de um array, indicando o nível máximo de matrizes aninhadas. Se a matriz não contiver nenhuma matriz aninhada, ela retornará 1; se contiver uma ou mais matrizes aninhadas, retornará 2; e assim por diante.

Solução alternativa para recursão infinita:

Uma abordagem para encontrar a profundidade do array é utilizar print_r() para verificar a recursão infinita. Esta função gera uma representação de string de um array, e seu recuo de saída pode revelar a profundidade da estrutura.

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;
}

Esta solução fornece uma determinação precisa da profundidade do array, evitando as possíveis armadilhas associadas às funções recursivas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3