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

Comment supprimer les valeurs nulles du tableau php

PHPz
Libérer: 2023-04-20 10:03:23
original
932 Les gens l'ont consulté

Dans la programmation PHP, nous rencontrons souvent des situations où les valeurs nulles​​dans les tableaux doivent être supprimées. Cette situation peut se produire lors du nettoyage des données, du filtrage des données et d'autres scénarios. Il existe plusieurs façons d'y parvenir en PHP, et nous les examinerons en détail ci-dessous, ainsi que leurs avantages et inconvénients.

Méthode 1 : utilisez la fonction array_filter()

La fonction array_filter() peut renvoyer un nouveau tableau, dans lequel les éléments qui ne remplissent pas les conditions de la fonction personnalisée sont filtrés. Nous pouvons construire une fonction personnalisée pour déterminer si un élément est nul.

L'exemple de code est le suivant :

$array = array("foo", "", "bar", null, "baz");
$new_array = array_filter($array, function($item) {
    return !empty($item);
});
Copier après la connexion

Dans cet exemple, le tableau $array contient des chaînes vides, des valeurs nulles et des éléments non vides via le array_filter()<.>, nous obtenons un nouveau tableau qui ne contient pas de valeurs nulles, à savoir <code>$new_array. $array 数组中包含了空字符串、null 值和非空元素,通过 array_filter() 函数,我们得到了一个不包含空值的新数组,即 $new_array

需要注意的是, array_filter() 函数默认会去掉以下值:

  • "" (空字符串)
  • 0 (整数 0)
  • 0.0 (浮点数 0)
  • "0" (字符串 "0")
  • false (布尔值 false)
  • null

如果需要去掉其他值,可以通过自定义函数传递第二个参数进行过滤。

优点:array_filter() 函数使用简单,可以自定义过滤条件。

缺点:相比其他方法,此方法性能较差,中大型数组尤其如此。

方法二:使用 foreach 循环去除空值

此方法较为直接,可以通过 foreach 循环遍历数组,然后利用 PHP 的弱类型特性(空值会被自动转换成 false)来判断并去除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
foreach($array as $key => $value) {
    if(!$value) {
        unset($array[$key]);
    }
}
Copier après la connexion

该例中,我们遍历了 $array 数组,如果元素的值为 false,即被判定为空值,则使用 unset() 函数移除该元素。

优点:相对于 array_filter() 函数,此方法对于大规模数组性能更优。

缺点:需要手动添加条件判断,代码不够简洁。

方法三:使用 array_diff() 函数

array_diff() 函数用于计算数组的值的差集。我们可以使用它来移除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_diff($array, array("", null));
Copier après la connexion

该例中,我们使用 array_diff() 函数计算 $array 数组和一个包含空字符串和 null 值的数组的差集,从而得到一个新数组 $new_array

Il est à noter que la fonction array_filter() supprimera par défaut les valeurs suivantes :

  • "" (chaîne vide)
  • 0 (entier 0)
  • 0.0 (Nombre à virgule flottante 0)
  • "0" (Chaîne "0")
  • false (Booléen faux)
  • null
Si vous devez supprimer d'autres valeurs, vous pouvez transmettre le deuxième paramètre via une fonction personnalisée pour le filtrage.

Avantages : La fonction array_filter() est simple à utiliser et les conditions de filtrage peuvent être personnalisées.

Inconvénients : Par rapport à d'autres méthodes, cette méthode a des performances médiocres, en particulier pour les tableaux moyens et grands.

Méthode 2 : utilisez la boucle foreach pour supprimer les valeurs nulles🎜🎜Cette méthode est plus directe. Vous pouvez parcourir le tableau via la boucle foreach, puis utiliser la fonctionnalité de type faible de PHP (les valeurs nulles seront automatiquement converties en faux) pour déterminer. et supprimez les valeurs nulles. 🎜🎜L'exemple de code est le suivant : 🎜rrreee🎜Dans cet exemple, nous parcourons le tableau $array si la valeur de l'élément est fausse, c'est-à-dire qu'il est déterminé comme étant une valeur nulle. , utilisez la fonction unset() pour supprimer l'élément. 🎜🎜Avantages : Par rapport à la fonction <code>array_filter(), cette méthode offre de meilleures performances pour les tableaux à grande échelle. 🎜🎜Inconvénients : le jugement conditionnel doit être ajouté manuellement et le code n'est pas assez concis. 🎜🎜Méthode 3 : utilisez la fonction array_diff() 🎜🎜La fonction array_diff() est utilisée pour calculer l'ensemble de différences de valeurs du tableau. Nous pouvons l'utiliser pour supprimer les valeurs nulles. 🎜🎜L'exemple de code est le suivant : 🎜rrreee🎜Dans cet exemple, nous utilisons la fonction array_diff() pour calculer la différence entre le tableau $array et un tableau contenant chaînes vides et valeurs nulles, obtenant ainsi un nouveau tableau $new_array. Nous pouvons voir que cette méthode peut filtrer plusieurs valeurs à la fois. 🎜🎜Il convient de noter que cette méthode ne peut filtrer que les valeurs nulles codées en dur et ne peut pas personnaliser les conditions de filtrage. 🎜🎜Avantages : Le code est concis et plusieurs valeurs peuvent être filtrées en même temps. 🎜🎜Inconvénients : Impossible de personnaliser les conditions de filtre. 🎜🎜Pour résumer, pour les tableaux à grande échelle, nous vous recommandons d'utiliser la méthode deux ; pour les tableaux à petite échelle, vous pouvez choisir la méthode un ou la méthode trois. 🎜

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