Maison  >  Article  >  développement back-end  >  Comment trouver la profondeur d'un tableau en PHP

Comment trouver la profondeur d'un tableau en PHP

PHPz
PHPzoriginal
2023-04-20 15:02:36708parcourir

PHP est un langage de programmation côté serveur largement utilisé dans le développement Web. En même temps, le traitement des tableaux est également une partie importante de la programmation PHP. Cependant, face à des tableaux imbriqués complexes, la profondeur des tableaux PHP est également devenue un problème important que les développeurs doivent étudier. Cet article présentera la profondeur des tableaux en PHP et fournira des solutions.

1. Qu'est-ce que la profondeur du tableau ?
En PHP, un tableau peut contenir une structure multidimensionnelle qui a la même forme et la même hiérarchie que l'échantillon. Par conséquent, la profondeur d’un tableau fait référence au nombre de niveaux de tableaux imbriqués dans ce tableau. Par exemple : Considérons le tableau suivant :

$array = array(

'name' => 'john',
'age' => 31,
'education' => array(
    'high school', 'bachelor', 'master'
),
'languages' => array(
    'programming' => array(
        'c', 'c++', 'java', 'php'
    ),
    'spoken' => array(
        'english', 'french', 'spanish'
    )
)

);

Il s'agit d'un tableau PHP contenant des tableaux imbriqués, où les clés "éducation" et "langues" contiennent un autre tableau. Ainsi, les clés « éducation » et « langues » ont une profondeur de 1 puisqu'elles contiennent juste un autre tableau imbriqué. Dans cet exemple, les tableaux « programmation » et « parlé » ont une profondeur de 2 car ils contiennent chacun un autre tableau. Pour résumer, la profondeur du tableau est de 2.

2 Comment obtenir la profondeur du tableau en PHP ?
Obtenir la profondeur d'un tableau PHP est un problème courant, alors comment le faire via la programmation ? Ce qui suit est une fonction PHP qui implémente l'acquisition de la profondeur du tableau :

function get_array_degree($array) {

$max_depth = 1;

foreach ($array as $value) {
    if (is_array($value)) {
        $depth = get_array_depth($value) + 1;

        if ($depth > $max_depth) {
            $max_depth = $depth;
        }
    }
}

return $max_depth;

}

Cette fonction utilise la récursivité pour obtenir la profondeur du tableau. Il initialise d'abord la variable $max_degree à 1. Ensuite, il parcourt le tableau et vérifie si chaque valeur est un tableau. Si tel est le cas, il appelle la fonction de manière récursive pour obtenir la profondeur du sous-tableau et détermine si la profondeur du sous-tableau est supérieure à $max_degree. Si tel est le cas, la variable $max_degree sera mise à jour à une profondeur plus profonde. Enfin, nous renvoyons la variable $max_degree, qui représente la profondeur du tableau.

3. Autres méthodes pour obtenir la profondeur d'un tableau
En plus des fonctions récursives, il existe d'autres méthodes pour obtenir la profondeur d'un tableau PHP. En voici quelques-unes :

  1. Fonction intégrée array_third()
    PHP fournit une fonction intégrée array_third() pour obtenir la profondeur d'un tableau. Voici un exemple :

function array_degree($array) {

$max_depth = 1;

foreach ($array as $value) {
    if (is_array($value)) {
        $depth = array_depth($value) + 1;

        if ($depth > $max_depth) {
            $max_depth = $depth;
        }
    }
}

return $max_depth;

}

  1. Utilisation de techniques de sérialisation et de désérialisation
    Une autre technique consiste à sérialiser le tableau en une chaîne, puis à traiter la chaîne pour obtenir la profondeur. Voici un exemple :

function array_degree($array) {

$string = serialize($array);
$depth = 1;

while (preg_match('/a:[0-9]+:{/', $string)) {
    $string = preg_replace('/a:[0-9]+:{/', '', $string);
    $depth++;
}

return $depth;

}

Cette fonction sérialise un tableau PHP en une chaîne, puis recherche dans la chaîne à l'aide d'expressions régulières "a:X:{" Une sous-chaîne où X est un numéro non hiérarchique. Il calcule la profondeur du tableau en supprimant ces sous-chaînes. Vous devez être prudent avec cette approche car elle peut entraîner des problèmes de performances lorsque vous utilisez de très grandes baies.

4. Résumé
Il est très important de comprendre la profondeur des tableaux PHP lorsqu'il s'agit de tableaux imbriqués. Vous pouvez utiliser des fonctions récursives, des fonctions intégrées ou des techniques de sérialisation pour calculer la profondeur d'un tableau. Quelle que soit l'approche adoptée, il existe une règle constante pour chacune des méthodes ci-dessus : manipulez toujours les grands tableaux avec soin pour obtenir de bonnes performances.

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