Position actuelle: Accueil> Derniers articles> Utilisez array_filter () pour améliorer le style fonctionnel du code

Utilisez array_filter () pour améliorer le style fonctionnel du code

M66 2025-06-03

Dans PHP, bien qu'il ne s'agisse pas d'un langage de programmation purement fonctionnel, via certains outils fonctionnels intégrés, nous pouvons toujours écrire plus élégant, plus simple et plus facile à maintenir le code. Array_Filter () est une fonction d'outil souvent négligente mais très puissante. Cet article présentera comment utiliser array_filter () pour améliorer votre style de code PHP et se rapprocher de la programmation fonctionnelle.

Qu'est-ce que Array_Filter () ?

Array_Filter () est l'une des fonctions de traitement de tableau intégré dans PHP, qui est utilisée pour filtrer les éléments dans un tableau. Il accepte une fonction de rappel qui exécute la fonction sur chaque élément du tableau, et les éléments avec la valeur de retour de True seront conservés, et d'autres seront supprimés.

La syntaxe est la suivante:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Si aucune fonction de rappel n'est fournie, elle supprimera les valeurs équivalentes à false dans le tableau (telles que 0 , '' , null , false , etc.).

Utilisation 1: Nettoyez la "valeur nulle" dans les données

Plusieurs fois, nous recevrons des données du formulaire ou de l'API, qui peuvent contenir du contenu non valide tel que les chaînes vides, null, false, etc. Utilisez array_filter () pour nettoyer une ligne de code.

 $data = [
    'username' => 'alice',
    'email' => '',
    'age' => null,
    'subscribe' => false,
];

$cleaned = array_filter($data);

print_r($cleaned);

Sortir:

 Array
(
    [username] => alice
)

C'est beaucoup plus élégant que d'écrire manuellement le nettoyage .

Utilisation 2: combinant des fonctions anonymes pour le filtrage conditionnel

Vous pouvez implémenter un filtrage de condition plus flexible en transmettant des fonctions de rappel. Par exemple, filtrez les utilisateurs actifs d'un groupe d'utilisateurs:

 $users = [
    ['name' => 'Alice', 'active' => true],
    ['name' => 'Bob', 'active' => false],
    ['name' => 'Carol', 'active' => true],
];

$activeUsers = array_filter($users, function ($user) {
    return $user['active'];
});

print_r($activeUsers);

La sortie ne contiendra que Alice et Carol.

Utilisation 3: Traitez la réponse de l'API ou les résultats de la base de données

Supposons que vous obteniez un ensemble de données d'une API distante (comme https://api.m66.net/users ) qui contient de nombreux utilisateurs invalides ou temporaires, vous pouvez rapidement les filtrer:

 $response = file_get_contents('https://api.m66.net/users');
$users = json_decode($response, true);

$validUsers = array_filter($users, function ($user) {
    return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
});

Comme vous pouvez le voir, array_filter () rend le code plus proche du style "programmation déclarative", et les intentions du code sont plus claires, plutôt que de se concentrer sur "comment implémenter des boucles et des conditions".

Utilisation 4: Utiliser avec d'autres méthodes fonctionnelles

Vous pouvez combiner array_filter () avec des méthodes fonctionnelles telles que array_map () et array_reduce () pour écrire du code logique qui n'a presque pas de foreach . Par exemple, filtrez et extraire le nom d'utilisateur de l'utilisateur actif:

 $usernames = array_map(
    fn($user) => $user['name'],
    array_filter($users, fn($user) => $user['active'])
);

Concis et élégant, avec une sémantique claire.

Résumer

Array_Filter () est une fonction légère, puissante et facile à utiliser. S'il est bien utilisé, il peut rendre votre PHP plus fonctionnel et lisible. Par rapport à Foreach traditionnel, il peut clairement exprimer l'intention dans une ligne de code, réduire le code de la buissier de chauffeur et améliorer la maintenabilité.

Essayez d'utiliser array_filter () dans votre prochain projet pour améliorer la qualité et le style de votre code!