Maison  >  Article  >  développement back-end  >  Comment supprimer des tableaux qui ne sont pas des entiers en php

Comment supprimer des tableaux qui ne sont pas des entiers en php

PHPz
PHPzoriginal
2023-04-26 14:20:08493parcourir

En PHP, nous devons parfois opérer sur des éléments entiers dans un tableau. Cependant, s'il y a des éléments de type non entier dans le tableau, cela peut provoquer des erreurs dans les opérations de calcul ultérieures. Par conséquent, nous devons trouver un moyen de supprimer ces éléments non entiers.

Ci-dessous, je présenterai plusieurs méthodes pour réaliser cette fonction.

Méthode 1 : utilisez la fonction is_int() pour filtrer

La fonction is_int() peut déterminer si une variable est un entier. Nous pouvons parcourir chaque élément du tableau et utiliser la fonction is_int() pour déterminer s'il s'agit d'un type entier. S'il s'agit d'un entier, ajoutez-le au nouveau tableau, sinon ignorez l'élément.

Ce qui suit est un exemple de code :

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (is_int($value)) {
        $new_array[] = $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

Dans cet exemple, nous définissons un tableau primitif $array, qui contient des entiers, des chaînes et des nombres à virgule flottante. En parcourant le tableau, nous utilisons la fonction is_int() pour déterminer si chaque élément est de type entier. Enfin, nous ajoutons tous les éléments entiers au nouveau tableau $new_array.

Méthode 2 : utilisez la fonction ctype_digit() pour filtrer

En plus de la fonction is_int(), PHP fournit également une fonction ctype_digit(), qui peut être utilisée pour déterminer si une chaîne ne contient que des caractères numériques. Par conséquent, nous pouvons convertir l'élément non entier du tableau en un type chaîne, puis utiliser la fonction ctype_digit() pour déterminer s'il s'agit d'un type entier.

Ce qui suit est un exemple de code :

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (ctype_digit(strval($value))) {
        $new_array[] = (int) $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

Dans cet exemple, nous convertissons d'abord chaque élément du tableau en un type chaîne, puis utilisons la fonction ctype_digit() pour déterminer s'il s'agit d'un type entier. Enfin, s'il s'agit d'un type entier, il est converti en type entier et ajouté au nouveau tableau $new_array.

Méthode 3 : utilisez la fonction array_filter() pour filtrer

La fonction array_filter() intégrée de PHP peut filtrer les éléments du tableau et renvoyer un nouveau tableau. Nous pouvons utiliser cette fonction pour supprimer rapidement des éléments non entiers d'un tableau.

Ce qui suit est un exemple de code :

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array_filter($array, 'is_int');

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [5] => 4 )

Dans cet exemple, nous utilisons directement la fonction array_filter() pour filtrer les éléments du tableau et conserver les éléments de type entier. Notez que cette fonction ne conservera que les valeurs des éléments, pas leurs indices précédents.

Résumé

Il existe plusieurs façons ci-dessus de supprimer des éléments non entiers d'un tableau. Différentes méthodes conviennent à différentes situations et doivent être sélectionnées en fonction de la situation réelle. Lorsque vous utilisez la fonction is_int() et la fonction ctype_digit(), vous devez faire attention aux problèmes de conversion de type. Lorsque vous utilisez la fonction array_filter(), vous devez faire attention au changement des indices des éléments. La maîtrise de ces méthodes peut nous aider à exploiter plus efficacement les éléments entiers du tableau.

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