Dans la programmation PHP, nous rencontrons souvent des situations où les valeurs nullesdans 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); });
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()
函数默认会去掉以下值:
如果需要去掉其他值,可以通过自定义函数传递第二个参数进行过滤。
优点:array_filter()
函数使用简单,可以自定义过滤条件。
缺点:相比其他方法,此方法性能较差,中大型数组尤其如此。
方法二:使用 foreach 循环去除空值
此方法较为直接,可以通过 foreach 循环遍历数组,然后利用 PHP 的弱类型特性(空值会被自动转换成 false)来判断并去除空值。
示例代码如下:
$array = array("foo", "", "bar", null, "baz"); foreach($array as $key => $value) { if(!$value) { unset($array[$key]); } }
该例中,我们遍历了 $array
数组,如果元素的值为 false,即被判定为空值,则使用 unset()
函数移除该元素。
优点:相对于 array_filter()
函数,此方法对于大规模数组性能更优。
缺点:需要手动添加条件判断,代码不够简洁。
方法三:使用 array_diff() 函数
array_diff()
函数用于计算数组的值的差集。我们可以使用它来移除空值。
示例代码如下:
$array = array("foo", "", "bar", null, "baz"); $new_array = array_diff($array, array("", null));
该例中,我们使用 array_diff()
函数计算 $array
数组和一个包含空字符串和 null 值的数组的差集,从而得到一个新数组 $new_array
array_filter()
supprimera par défaut les valeurs suivantes :
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!