Comment vérifier la dimensionnalité d'un tableau en php

DDD
Libérer: 2023-07-13 16:14:45
original
1563 Les gens l'ont consulté

Comment vérifier si un tableau est un tableau à plusieurs dimensions en PHP : 1. En utilisant le jugement récursif en boucle, vous pouvez écrire une fonction récursive pour parcourir le tableau et appeler la même fonction de manière récursive lorsque vous rencontrez un tableau imbriqué et lorsque vous rencontrez un élément non-tableau, renvoie le nombre de couches actuellement parcourues ; 2. Utilisez la fonction "array_filter" pour comparer si le nombre total d'éléments du tableau et le nombre récursif sont égaux. S'ils ne sont pas égaux, cela signifie que le nombre total d'éléments du tableau est égal. array est un tableau multidimensionnel ; 3. Utilisez la fonction array_walk_recursive, etc.

Comment vérifier la dimensionnalité d'un tableau en php

L'environnement d'exploitation de cet article : système Windows 10, version php8.1.3, ordinateur Dell g3.

En PHP, vérifier si un tableau est un tableau unidimensionnel ou un tableau multidimensionnel est une tâche courante. Lorsqu'il s'agit d'opérations sur un tableau, il est important de comprendre les dimensions du tableau car elles affectent les méthodes que nous utilisons pour parcourir et manipuler le tableau.

Alors, comment vérifier si un tableau est un tableau unidimensionnel ou un tableau multidimensionnel ? Plusieurs méthodes de jugement seront présentées ci-dessous.

1. Utilisez la récursion de boucle pour déterminer

L'utilisation de la récursion de boucle est une méthode courante pour vérifier les dimensions d'un tableau. Vous pouvez écrire une fonction récursive qui parcourt un tableau et appelle la même fonction de manière récursive lorsque des tableaux imbriqués sont rencontrés. Lorsqu'un élément autre qu'un tableau est rencontré, le niveau actuel parcouru est renvoyé. Par exemple :

function getArrayDepth($array){
$max_depth = 1;
foreach($array as $value){
if(is_array($value)){
$depth = getArrayDepth($value) + 1;
if($depth > $max_depth){
$max_depth = $depth;
}
}
}
return $max_depth;
}
Copier après la connexion

Exemple d'utilisation :

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
echo getArrayDepth($array1); // 输出1
echo getArrayDepth($array2); // 输出2
echo getArrayDepth($array3); // 输出3
Copier après la connexion

Cette méthode parcourt le tableau de manière récursive et appelle la même fonction de manière récursive lorsqu'un tableau imbriqué est rencontré, renvoyant finalement la profondeur maximale du tableau.

2. Utilisez la fonction array_filter

La fonction array_filter de PHP peut filtrer les éléments du tableau en fonction de la fonction de rappel spécifiée et renvoyer les éléments qui remplissent les conditions. Nous pouvons utiliser la fonction array_filter pour vérifier si un tableau contient des tableaux imbriqués.

function isMultiDimensional($array){
return (count($array) !== count($array, COUNT_RECURSIVE));
}
Copier après la connexion

Exemple d'utilisation :

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
var_dump(isMultiDimensional($array1)); // 输出false
var_dump(isMultiDimensional($array2)); // 输出true
var_dump(isMultiDimensional($array3)); // 输出true
Copier après la connexion
Copier après la connexion

Cette méthode détermine s'il existe des tableaux imbriqués en comparant si le nombre total d'éléments du tableau et le nombre de récursions sont égaux. S’ils ne sont pas égaux, cela signifie que le tableau est un tableau multidimensionnel.

3. Utilisez la fonction array_walk_recursive

La fonction array_walk_recursive de PHP peut appeler de manière récursive une fonction définie par l'utilisateur pour chaque élément du tableau. Nous pouvons utiliser cette fonctionnalité pour vérifier si un tableau contient des tableaux imbriqués.

function isMultiDimensional($array){
$result = false;
$callback = function($value) use (&$result){
if(is_array($value)){
$result = true;
}
};
array_walk_recursive($array, $callback);
return $result;
}
Copier après la connexion

Exemple d'utilisation :

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
var_dump(isMultiDimensional($array1)); // 输出false
var_dump(isMultiDimensional($array2)); // 输出true
var_dump(isMultiDimensional($array3)); // 输出true
Copier après la connexion
Copier après la connexion

Cette méthode utilise la fonction array_walk_recursive pour parcourir chaque élément du tableau. Lorsqu'elle rencontre un tableau imbriqué, elle définit un bit d'indicateur sur true et renvoie finalement la valeur du bit d'indicateur.

Ci-dessus sont trois façons courantes de vérifier si un tableau est un tableau unidimensionnel ou un tableau multidimensionnel. Choisissez la méthode appropriée en fonction des besoins réels pour être plus flexible et efficace lors du traitement des opérations sur les tableaux.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal