Position actuelle: Accueil> Derniers articles> Explication détaillée de l'utilisation de base de Array_Filter ()

Explication détaillée de l'utilisation de base de Array_Filter ()

M66 2025-05-14

Dans le développement de PHP, les tableaux sont des structures de données très couramment utilisées. Lorsque vous opérez des baies, nous devons souvent filtrer le tableau, tels que la suppression des valeurs nuls, le conservation des éléments qui remplissent certaines conditions, etc. La fonction Array_Filter () est un outil très pratique conçu spécifiquement pour cela.

Cet article expliquera en détail l'utilisation de base de Array_Filter () , la signification des paramètres et certains scénarios d'utilisation courants, pour vous aider à maîtriser rapidement l'application pratique de cette fonction.

1. Introduction à la fonction array_filter ()

Array_Filter () est l'une des fonctions intégrées de PHP. Son objectif est d'utiliser une fonction de rappel pour filtrer chaque élément du tableau, ne laissant que les éléments avec la valeur de retour true . Sa syntaxe est la suivante:

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

Description du paramètre:

  • $ Array : Le tableau d'origine à filtrer.

  • $ callback (facultatif): une fonction de rappel utilisée pour déterminer si un élément est conservé. Si null , les valeurs de suppression par défaut sont fausses , null , vide string '' , numéro 0, array vide [] et autres "fausses valeurs".

  • $ mode (php 7.4+): Spécifie si le contenu transmis à la fonction de rappel est une paire de valeur, de clé ou de valeur clé.

2. Exemples d'utilisation de base

1. Supprimez les "fausses valeurs" du tableau

Il s'agit de la façon la plus courante de l'utiliser, adaptée au nettoyage des données de formulaire ou des éléments de configuration, etc .:

 $data = ["apple", "", null, 0, "banana", false];

$filtered = array_filter($data);

print_r($filtered);

Résultat de sortie:

 Array
(
    [0] => apple
    [4] => banana
)

Lorsqu'aucune fonction de rappel n'est passée, array_filter () supprimera "False Value" par défaut.

2. Utilisez des fonctions de rappel pour personnaliser la logique de filtrage

Par exemple, nous ne gardons que des chaînes avec une longueur supérieure à 5 dans le tableau:

 $words = ["apple", "strawberry", "banana", "kiwi"];

$filtered = array_filter($words, function($word) {
    return strlen($word) > 5;
});

print_r($filtered);

Sortir:

 Array
(
    [1] => strawberry
    [2] => banana
)

3. Filtre par nom de clé (en utilisant array_filter_use_key)

À partir de PHP 7.4, vous pouvez contrôler le contenu de filtrage via le troisième paramètre $ mode :

 $data = [
    'a' => 100,
    'b' => 200,
    'x' => 300,
];

$filtered = array_filter($data, function($key) {
    return $key === 'x';
}, ARRAY_FILTER_USE_KEY);

print_r($filtered);

Sortir:

 Array
(
    [x] => 300
)

3. Array_Filter () Scénarios d'application courants

1. Nettoyez les données du formulaire

 $_POST = [
    'username' => 'alice',
    'email' => '',
    'age' => null,
];

$clean_data = array_filter($_POST);

Cela peut rapidement supprimer les champs nuls et que seules les données valides sont conservées.

2. Filtrez des données utilisateur qui répondent à certains critères

 $users = [
    ['name' => 'Tom', 'active' => true],
    ['name' => 'Jerry', 'active' => false],
    ['name' => 'Spike', 'active' => true],
];

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

print_r($active_users);

3. Filtrez dynamiquement les liens juridiques dans la liste des URL

 $urls = [
    'https://m66.net/home',
    'invalid-url',
    'http://m66.net/contact',
    '',
];

$valid_urls = array_filter($urls, function($url) {
    return filter_var($url, FILTER_VALIDATE_URL);
});

print_r($valid_urls);

4. Choses à noter

  • Après avoir utilisé array_filter () , le nom de clé du tableau d'origine ne sera pas réinitialisé (si vous devez le réinitialiser, vous pouvez l'utiliser avec array_values ​​() ).

  • Si vous devez filtrer par KeyName, assurez-vous que PHP version> = 7.4 et utilisez Array_Filter_Use_Key .

  • La fonction de rappel doit renvoyer True ou False pour déterminer si l'élément est conservé.