Maison >développement back-end >Problème PHP >Comment déterminer si un tableau multidimensionnel est vide en php

Comment déterminer si un tableau multidimensionnel est vide en php

PHPz
PHPzoriginal
2023-04-18 14:11:20715parcourir

En PHP, le tableau est l'un des types de données couramment utilisés. En développement, nous devons souvent déterminer si un tableau est vide. Il est très simple de déterminer si un tableau unidimensionnel est vide. Nous pouvons utiliser la fonction empty() ou count() pour le déterminer. Mais pour les tableaux multidimensionnels, la situation est plus compliquée. Cet article explique comment déterminer si un tableau multidimensionnel est vide.

1. Définition d'un tableau multidimensionnel
En PHP, un tableau multidimensionnel est un tableau contenant un ou plusieurs tableaux. Par exemple :

$arr = array(
       array(1, 2, 3),
       array(4, 5, 6),
       array(7, 8, 9)
);

2. Méthodes pour déterminer si un tableau unidimensionnel est vide
1 Utilisez la fonction empty() pour déterminer si une variable est vide lorsque la valeur de la variable est 0, '', Lorsqu'elle est nulle, false. , array(), '0', etc. sont utilisés, la fonction empty() retournera true. Par conséquent, pour un tableau unidimensionnel, utilisez simplement la fonction empty() pour déterminer s’il est vide.

Par exemple :

$arr = array('a', 'b', 'c');
if(empty($arr)){
   echo '数组为空';
}else{
   echo '数组不为空';
}
Le résultat de sortie est "le tableau n'est pas vide".

2. Utilisez la fonction count() pour juger. La fonction count() peut renvoyer le nombre d'éléments du tableau. Si le tableau est vide, il renvoie 0. Par conséquent, nous pouvons utiliser la fonction count() pour déterminer si un tableau unidimensionnel est vide. Par exemple :

$arr = array('a', 'b', 'c');
if(count($arr)==0){
   echo '数组为空';
}else{
   echo '数组不为空';
}

Le résultat de sortie est "le tableau n'est pas vide".

3. Méthode pour juger si un tableau multidimensionnel est vide

La méthode ci-dessus ne s'applique pas aux tableaux multidimensionnels. Si vous souhaitez juger si un tableau multidimensionnel est vide, vous pouvez utiliser la méthode récursive pour juger.


1. Utilisez la récursion pour déterminer si un tableau multidimensionnel est vide

La récursion est une méthode d'appel à l'intérieur d'une fonction, qui peut parcourir et exploiter des structures de données imbriquées multicouches. En PHP, nous pouvons utiliser la récursivité pour parcourir un tableau multidimensionnel afin de déterminer s'il est vide.


Par exemple :

function is_empty_array($arr){
   if(!is_array($arr)){//如果不是数组,直接返回false
      return false;
   }
   foreach($arr as $val){
      if(is_array($val)){//如果该元素是数组,则递归遍历,直到找到非数组元素
         if(!is_empty_array($val)){
            return false;
         }
      }else{//如果该元素不是数组,则判断其是否为空
         if(!empty($val)){
            return false;
         }
      }
   }
   return true;
}

La fonction ci-dessus est utilisée pour déterminer si un tableau multidimensionnel est vide. S'il est vide, il renvoie vrai, sinon il renvoie faux. La boucle foreach est utilisée dans la fonction pour parcourir les éléments du tableau. Si l'élément est un tableau, la fonction is_empty_array() est appelée de manière récursive pour continuer à parcourir l'élément, sinon, il est jugé si l'élément est vide ;

Par exemple :

$arr = array(
   array(1, 2, 3),
   array(),
   array(array()),
   array(''),
   '',
   array(array())
);
if(is_empty_array($arr)){
   echo '数组为空';
}else{
   echo '数组不为空';
}

Le résultat de sortie est "le tableau est vide".

Dans l'exemple ci-dessus, $arr contient plusieurs tableaux, certains tableaux sont vides, certains tableaux contiennent des éléments vides et certains tableaux sont des tableaux imbriqués. Utilisez la fonction is_empty_array() pour déterminer facilement si le tableau est vide.

2. Utilisez la fonction array_filter() pour déterminer si le tableau multidimensionnel est vide

De plus, nous pouvons également utiliser la fonction array_filter() pour déterminer si le tableau multidimensionnel est vide. La fonction array_filter() peut être utilisée pour supprimer les éléments vides d'un tableau et renvoyer un nouveau tableau. Si le tableau renvoyé est vide, le tableau d'origine est vide.


Par exemple :

$arr = array(
   array(1, 2, 3),
   array(),
   array(array()),
   array(''),
   '',
   array(array())
);
$new_arr = array_filter($arr);
if(empty($new_arr)){
   echo '数组为空';
}else{
   echo '数组不为空';
}

Le résultat de sortie est "le tableau est vide".

Dans l'exemple ci-dessus, utilisez la fonction array_filter() pour filtrer les éléments vides du tableau et obtenir un nouveau tableau $new_arr. Si $new_arr est vide, le tableau d'origine est vide.

4. Notes

1. Lorsque vous parcourez des tableaux multidimensionnels de manière récursive, faites attention à déterminer si chaque élément du tableau est un tableau.

2. Lorsque vous utilisez la fonction array_filter() pour filtrer un tableau, faites attention au type de valeur de retour. Si vous souhaitez renvoyer la valeur clé du tableau d'origine, vous pouvez utiliser array_filter($arr), sinon vous pouvez. utilisez array_values(array_filter($arr)).

Résumé

Pour déterminer si un tableau multidimensionnel est vide, vous devez utiliser la récursion ou la fonction array_filter(). La méthode récursive est plus flexible et la valeur de retour peut être personnalisée tandis que l'utilisation de la fonction array_filter() est plus simple ; et plus pratique, mais vous devez faire attention au type de valeur de retour. En développement réel, vous pouvez choisir une méthode adaptée à vos 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!

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