Maison > développement back-end > Problème PHP > Comment supprimer les valeurs nulles du tableau en php

Comment supprimer les valeurs nulles du tableau en php

PHPz
Libérer: 2023-05-11 10:49:37
original
533 Les gens l'ont consulté

Lors du développement de PHP, nous devons souvent traiter des tableaux. Lors du traitement de tableaux, nous devons souvent supprimer les valeurs nulles​​dans le tableau pour rendre le tableau plus propre et plus soigné.

Les valeurs nulles dans le tableau n'affectent pas l'utilisation du tableau, mais elles rendront le tableau confus et alourdissent parfois le programme. Par conséquent, nous devons traiter le tableau via des fonctions PHP pour supprimer les valeurs nulles.

PHP fournit une variété de méthodes pour supprimer les valeurs nulles​​dans un tableau, la méthode la plus couramment utilisée consiste à utiliser la fonction array_filter(). Présentons en détail comment utiliser cette fonction.

  1. Utilisation de base

array_filter() est une fonction en PHP utilisée pour filtrer les valeurs indésirables dans un tableau. La syntaxe de base de cette fonction est la suivante :

array array_filter (array $array [, callback $callback [, int $flag = 0 ]])
Copier après la connexion

Parmi eux, $array fait référence au tableau à filtrer, $callback est un paramètre facultatif, indiquant la fonction de rappel à appliquer (si non précisée , toutes les valeurs équivalentes seront supprimées (élément faux). $flag est toujours un paramètre facultatif. S'il est défini sur PHP_ARRAY_FILTER_USE_BOTH, la valeur et la clé seront vérifiées pour voir si elles sont vides.

Regardez un exemple ci-dessous :

<?php
   $arr = array("a", "b", "", "c", "", "d");
   print_r(array_filter($arr));
?>
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
Copier après la connexion

Dans le code ici, nous définissons un tableau $arr, qui contient deux les éléments vides "" sont trouvés. Après avoir utilisé la fonction array_filter() pour filtrer les éléments vides, seuls les éléments non vides sont conservés, à savoir [a, b, c, d].

  1. Traitement des tableaux associatifs

En même temps, nous pouvons également filtrer les tableaux associatifs. Les fonctions de filtre sont appliquées aux valeurs, de sorte que seules les paires clé-valeur qui correspondent aux critères de filtre sont conservées.

Regardez un exemple ci-dessous :

<?php
   $arr = array(
      "a" => 1,
      "b" => 2,
      "c" => "",
      "d" => 3,
      "e" => "",
      "f" => 4
   );
   print_r(array_filter($arr));
?>
Copier après la connexion

Résultat de sortie :

Array
(
    [a] => 1
    [b] => 2
    [d] => 3
    [f] => 4
)
Copier après la connexion

Ici, nous définissons un tableau associatif $arr, nous pouvons le voir dans After filtrage, seules les clés (a, b, d, f) dont les valeurs ne sont pas vides restent.

  1. Utilisez une fonction de rappel personnalisée

Si vous souhaitez personnaliser les conditions de filtrage, vous pouvez utiliser une fonction de rappel pour y parvenir. La fonction de rappel reçoit la valeur d'un seul élément du tableau en tant que paramètre et renvoie une valeur booléenne indiquant si la valeur doit être conservée.

Regardez un exemple ci-dessous :

<?php
   $arr = array("apple", "banana", "cherry", "donut", "elderberry");
   print_r(array_filter($arr, function($var) {
      return (strlen($var) > 4);
   }));
?>
Copier après la connexion

Résultat de sortie :

Array
(
    [2] => cherry
    [3] => donut
    [4] => elderberry
)
Copier après la connexion

Ici, nous définissons une fonction de rappel qui détermine si elle est basée ou non sur la longueur de la réserve d'éléments. Filtrez les éléments dont la longueur est inférieure ou égale à 4 et le résultat final est [cerise, beignet, sureau].

  1. Pour les tableaux multidimensionnels

Les méthodes présentées ci-dessus sont toutes applicables aux tableaux unidimensionnels. Que devez-vous faire si vous le souhaitez. filtrer les tableaux multidimensionnels ? Qu'en est-il du fonctionnement ?

Nous pouvons utiliser une fonction récursive pour traiter des tableaux multidimensionnels comme suit :

<?php
   $arr = array(
      0 => 'some data',
      1 => '',
      2 => array(
         0 => 'more data',
         1 => '',
         2 => array(
            0 => 'even more data',
            1 => '',
         ),
      ),
   );
   function removeEmptyValues(&$array) {
      foreach($array as $key => &$value) {
         if(is_array($value)) {
            removeEmptyValues($value);
            if(count($value) == 0) {
               unset($array[$key]);
            }
         }
         else if(empty($value)) {
            unset($array[$key]);
         }
      }
      unset($value);
   }
   removeEmptyValues($arr);
   print_r($arr);
?>
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => some data
    [2] => Array
        (
            [0] => more data
            [2] => Array
                (
                    [0] => even more data
                )
        )
)
Copier après la connexion

Ici, nous définissons un Le La fonction récursive removeEmptyValues() est utilisée pour parcourir le tableau multidimensionnel, traiter les éléments à l'intérieur et supprimer automatiquement les valeurs vides.

Summary

Les tableaux sont très courants dans le développement PHP, mais parfois le tableau peut contenir un grand nombre de valeurs nulles, occupant une grande quantité d'espace de stockage et affectant les performances de le programme. À ce stade, nous pouvons utiliser la fonction array_filter() pour supprimer les valeurs nulles dans un tableau afin de rendre le tableau plus propre et plus efficace. Il convient de noter que lorsqu’il s’agit de tableaux multidimensionnels, nous devons utiliser des fonctions récursives.

Bien sûr, ce n'est qu'une solution simple, et elle ne fonctionnera pas dans toutes les situations. Si vous avez une meilleure méthode, partagez-la.

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!

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