Maison > développement back-end > Problème PHP > Comment déterminer le nombre de dimensions d'un tableau en php

Comment déterminer le nombre de dimensions d'un tableau en php

百草
Libérer: 2023-07-12 15:55:38
original
1640 Les gens l'ont consulté

Comment PHP détermine le nombre de dimensions d'un tableau : 1. La fonction détermine les dimensions du tableau en s'appelant de manière récursive et utilise la fonction "foreach()" pour parcourir tous les éléments. Si le résultat est toujours un tableau, la dimension sera augmentée de un ; 2. Elle est implémentée en convertissant le tableau en chaîne JSON via la fonction "json_encode()", puis en utilisant des expressions régulières pour déterminer la profondeur hiérarchique de la chaîne JSON.

Comment déterminer le nombre de dimensions d'un tableau en php

Le système d'exploitation de ce tutoriel : système windows10, PHP version 8.1.3, ordinateur DELL G3.

Méthodes pour déterminer le nombre de dimensions d'un tableau :

Méthode 1 : Utiliser la récursion pour déterminer les dimensions du tableau

La fonction dans l'exemple de code ci-dessous détermine les dimensions du tableau en s'appelant de manière récursive If après avoir parcouru une boucle. tous les éléments, c'est toujours un tableau, augmentez la dimension de un.

/**
 * 判断数组维度
 * 
 * @param array $arr
 * @return int
 */
function array_dimension($arr)
{
  $dimension = 0;
  if (is_array($arr)) {
    foreach ($arr as $item) {
      if (is_array($item)) {
        $sub_dimension = array_dimension($item);
        if ($sub_dimension > $dimension) {
          $dimension = $sub_dimension;
        }
      }
    }
    $dimension++;
  }
  return $dimension;
}
// 示例数据
$arr1 = array(1, 2, 3);
$arr2 = array(array(1, 2), array(3, 4));
$arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8)));
echo &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;
Copier après la connexion

Le résultat de sortie du code ci-dessus :

数组1的维度:1
数组2的维度:2
数组3的维度:3
Copier après la connexion
Copier après la connexion

Méthode 2 : convertir au format JSON pour déterminer la dimension du tableau

La fonction dans l'exemple de code ci-dessous convertit le tableau en chaîne JSON, puis détermine la profondeur hiérarchique du JSON chaîne à travers des expressions régulières réalisées.

/**
 * 判断数组维度
 * 
 * @param array $arr
 * @return int
 */
function array_dimension($arr)
{
  $json_arr = json_encode($arr, JSON_UNESCAPED_UNICODE);
  $max_depth = 1;
  if (preg_match_all(&#39;/(?:^|\{|\,)\s*(\[(?R)*\]|\{(?R)*\})\s*(?:(?=\:)|$)/&#39;, $json_arr, $m)) {
    foreach ($m[1] as $val) {
      $depth = substr_count(str_replace(["[", "{", "]", "}"], "", $val), &#39;,&#39;) + 1;
      if ($depth > $max_depth) {
        $max_depth = $depth;
      }
    }
  }
  return $max_depth;
}
// 示例数据
$arr1 = array(1, 2, 3);
$arr2 = array(array(1, 2), array(3, 4));
$arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8)));
echo &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;
Copier après la connexion

Le résultat de sortie du code ci-dessus :

数组1的维度:1
数组2的维度:2
数组3的维度:3
Copier après la connexion
Copier après la connexion

Les deux méthodes ci-dessus sont couramment utilisées pour déterminer les dimensions du tableau. Elles sont relativement simples à mettre en œuvre. Vous pouvez choisir la méthode appropriée en fonction de vos propres besoins.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal