Maison >développement back-end >tutoriel php >Comment déterminer la profondeur des tableaux imbriqués en PHP ?

Comment déterminer la profondeur des tableaux imbriqués en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 14:52:021082parcourir

How to Determine the Depth of Nested Arrays in PHP?

Détermination de la profondeur des tableaux imbriqués en PHP

Déterminer la profondeur d'imbrication maximale d'un tableau peut être un outil précieux lors de la gestion de structures de données complexes . En PHP, les tableaux peuvent contenir des tableaux en tant qu'éléments, créant une structure hiérarchique potentiellement profonde.

Détermination de la profondeur

Une méthode fiable pour calculer la profondeur d'un tableau imbriqué dans PHP consiste à utiliser print_r() pour analyser la sortie du tableau :

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

Dans cette méthode :

  • print_r() génère le tableau dans un humain -format lisible, avec des indentations indiquant l'imbrication des tableaux.
  • La sortie est divisée en lignes.
  • L'indentation de chaque ligne est calculée (en multiples de 4 espaces).
  • L'indentation maximale rencontrée représente le niveau d'imbrication le plus profond.
  • La profondeur est calculée en divisant par deux l'indentation maximale (arrondie), car chaque niveau d'imbrication introduit deux niveaux d'indentation (parenthèses ouvrantes et fermantes).

En implémentant cette fonction, vous pouvez déterminer efficacement la profondeur de n'importe quel tableau PHP, quelle que soit sa complexité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn