Dans PHP, Array_Filter () est une fonction très pratique qui peut filtrer les éléments dans un tableau avec personnalisation. En transmettant une fonction de rappel, nous pouvons conserver ou supprimer des éléments du tableau en fonction de conditions logiques spécifiques. Dans cet article, nous présenterons comment utiliser array_filter () pour filtrer un tableau.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ Array : le tableau d'origine qui doit être filtré.
$ rappel : une fonction de rappel utilisée pour déterminer si chaque élément est conservé. Retour True signifie réservé et faux signifie abattage.
Mode $ : paramètre facultatif pour contrôler les paramètres (clé, valeur ou paire de valeurs de clé) de la fonction de rappel entrante.
Si $ rappel n'est pas fourni, les éléments avec une valeur de faux seront filtrés par défaut (tels que 0 , chaîne vide, null , etc.).
Supposons que nous ayons un tableau contenant divers types de données, tels que les chaînes, les nombres de points flottants, les valeurs booléennes et les entiers. Nous voulons ne garder que des entiers.
<?php
$data = [1, '2', 3.5, 4, 'hello', true, 0, null, 7, '8'];
$integers = array_filter($data, function ($item) {
return is_int($item);
});
print_r($integers);
?>
Array
(
[0] => 1
[3] => 4
[8] => 7
)
Comme vous pouvez le voir, seuls les entiers réels du tableau sont conservés, tandis que «2» (chaîne) ou 3,5 (numéros de point flottants) sont filtrés.
Par défaut, Array_Filter () conserve l'index de clé du tableau d'origine. Si vous souhaitez réindexer, vous pouvez utiliser array_values () :
$integers = array_values(array_filter($data, function ($item) {
return is_int($item);
}));
Cette méthode de filtrage est très utile dans le développement réel. Par exemple, lorsque vous obtenez un tableau de données mixte à partir d'une entrée utilisateur ou d'une API distante, vous pouvez utiliser array_filter () pour les traiter rapidement lorsque vous devez taper validation ou nettoyage des données.
Par exemple:
// Simuler les données obtenues à partir d'interfaces distantes
$response = json_decode(file_get_contents("https://api.m66.net/data"), true);
$cleaned = array_filter($response['values'], function ($value) {
return is_int($value);
});
Dans ce code, après avoir obtenu les données de https://api.m66.net/data , nous utilisons array_filter () pour éliminer les valeurs non intimes.
Array_Filter () est une puissante fonction de traitement de tableau dans PHP. Il peut implémenter diverses logiques de filtrage personnalisées avec des fonctions de rappel. Grâce à lui, nous pouvons facilement extraire les éléments requis du tableau, tels que des entiers, des chaînes ou des données conformes à des règles spécifiques.
N'oubliez pas que l'utiliser avec une fonction de détection de type intégrée comme is_int () peut rendre vos données plus propres et plus fiables, et également rendre votre code plus élégant.
Si vous avez plus besoin de gérer les tableaux, des fonctions telles que array_map () et array_reduce () valent également la peine d'être essayées!