"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo calcular la profundidad de matrices anidadas en PHP?

¿Cómo puedo calcular la profundidad de matrices anidadas en PHP?

Publicado el 2024-11-18
Navegar:348

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

Determinación de la profundidad de los arreglos anidados en PHP

Los arreglos son una estructura de datos versátil en PHP, que permite almacenar elementos dentro de otros arreglos. Esta característica permite una organización de datos compleja, pero puede resultar complicado determinar el nivel máximo de anidamiento de una matriz dentro de una estructura determinada.

Para abordar esto, se puede idear una función que calcule la profundidad de una matriz, indicando la nivel máximo de matrices anidadas. Si la matriz no contiene ninguna matriz anidada, devuelve 1; si contiene uno o más arreglos anidados, devuelve 2; y así sucesivamente.

Solución alternativa para recursividad infinita:

Un enfoque para encontrar la profundidad de la matriz es utilizar print_r() para verificar la recursividad infinita. Esta función genera una representación de cadena de una matriz y su sangría de salida puede revelar la profundidad de la estructura.

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 solución proporciona una determinación precisa de la profundidad de la matriz, evitando los posibles problemas asociados con las funciones recursivas.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3