Lors du développement de PHP, nous devons souvent traiter des tableaux. Lors du traitement de tableaux, nous devons souvent supprimer les valeurs nullesdans 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 nullesdans 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.
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 ]])
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)); ?>
Résultat de sortie :
Array ( [0] => a [1] => b [3] => c [5] => d )
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].
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)); ?>
Résultat de sortie :
Array ( [a] => 1 [b] => 2 [d] => 3 [f] => 4 )
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.
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); })); ?>
Résultat de sortie :
Array ( [2] => cherry [3] => donut [4] => elderberry )
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].
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); ?>
Résultat de sortie :
Array ( [0] => some data [2] => Array ( [0] => more data [2] => Array ( [0] => even more data ) ) )
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!