Position actuelle: Accueil> Derniers articles> Comment gérer les tableaux associatifs à l'aide de la fonction array_filter ()? Comment cela fonctionne-t-il et quels problèmes peuvent-ils résoudre?

Comment gérer les tableaux associatifs à l'aide de la fonction array_filter ()? Comment cela fonctionne-t-il et quels problèmes peuvent-ils résoudre?

M66 2025-05-17

Dans PHP, la fonction Array_Filter () est un outil très utile pour filtrer les éléments du tableau. Il filtre les éléments dans le tableau en fonction de la fonction de rappel entrante, et seuls les éléments qui remplissent les conditions sont conservés. Si la fonction de rappel n'est pas adoptée, array_filter () supprimera l'élément avec une valeur de faux . Lors du traitement des tableaux associatifs, Array_Filter () peut également effectuer des opérations de filtrage de données complexes très facilement. Ensuite, nous expliquerons en détail comment utiliser array_filter () pour gérer les tableaux associatifs, ainsi que comment il fonctionne et les scénarios d'application.

1. Syntaxe de base de Array_Filter ()

 array array_filter ( array $array , callable $callback = ? , int $mode = 0 ) : array
  • $ Array : un tableau à filtrer.

  • $ rappel : une fonction de rappel pour le filtrage. Si la fonction de rappel n'est pas adoptée, l'élément avec la valeur de false sera supprimé par défaut.

  • Mode $ : détermine si le paramètre de la fonction de rappel est la valeur de l'élément de tableau ou la paire de valeurs clés du tableau. Array_filter_use_key (valeur par défaut), array_filter_use_both (passer les touches et les valeurs).

2. Comment array_filter () gère les tableaux associatifs fonctionne

En PHP, les clés du tableau associatif sont généralement des chaînes ou des nombres, et les valeurs appariées sont les données que vous souhaitez stocker et filtrer. array_filter () peut être filtré en fonction des valeurs, des clés ou des deux clés et des valeurs.

Exemple 1: filtrage en fonction des valeurs

Supposons que nous ayons un tableau associatif contenant plusieurs informations utilisateur, et nous voulons filtrer tous les utilisateurs de moins de 18 ans.

 <?php
$users = [
    "user1" => ["name" => "Alice", "age" => 25],
    "user2" => ["name" => "Bob", "age" => 17],
    "user3" => ["name" => "Charlie", "age" => 30]
];

$filtered_users = array_filter($users, function($user) {
    return $user["age"] >= 18;  // Seul l&#39;âge est supérieur ou égal à 18 Utilisateurs
});

print_r($filtered_users);
?>

Sortir:

 Array
(
    [user1] => Array
        (
            [name] => Alice
            [age] => 25
        )
    [user3] => Array
        (
            [name] => Charlie
            [age] => 30
        )
)

Dans l'exemple ci-dessus, la fonction Array_Filter () traverse les utilisateurs de la table et utilise la fonction de rappel pour filtrer les utilisateurs plus anciens ou égaux à 18.

Exemple 2: filtrage basé sur les clés

Supposons que nous voulons filtrer les tableaux associatifs basés sur certaines clés, tels que la suppression des informations de certains utilisateurs.

 <?php
$users = [
    "user1" => ["name" => "Alice", "age" => 25],
    "user2" => ["name" => "Bob", "age" => 17],
    "user3" => ["name" => "Charlie", "age" => 30]
];

$filtered_users = array_filter($users, function($user, $key) {
    return $key != "user2";  // La clé d&#39;exclusion est user2 Utilisateurs
}, ARRAY_FILTER_USE_BOTH);

print_r($filtered_users);
?>

Sortir:

 Array
(
    [user1] => Array
        (
            [name] => Alice
            [age] => 25
        )
    [user3] => Array
        (
            [name] => Charlie
            [age] => 30
        )
)

Dans cet exemple, Array_Filter () utilise le mode Array_Filter_Use_Both , afin que la fonction de rappel puisse non seulement accéder aux valeurs des éléments du tableau, mais aussi leurs clés. De cette façon, nous pouvons décider de conserver l'élément en fonction de la clé.

3. Problèmes que Array_Filter () peut résoudre

3.1. Nettoyer des valeurs non valides dans le tableau

Lors du traitement des données, vous pouvez rencontrer un tableau contenant une valeur nul, null , false , 0 ou une chaîne vide. Utilisez Array_Filter () pour nettoyer ces données non valides facilement.

Par exemple, supprimez un élément avec une valeur de faux dans un tableau:

 <?php
$array = [0, 1, false, 2, "", null, 3];
$filtered_array = array_filter($array);  // Tous seront supprimés par défaut `false` valeur
print_r($filtered_array);
?>

Sortir:

 Array
(
    [1] => 1
    [3] => 2
    [6] => 3
)

3.2. Filtre les données qui répondent aux critères spécifiques

Array_Filter () est un outil très pratique lorsque vous devez filtrer les éléments qui répondent à certains critères à partir d'un ensemble de données. Par exemple, il peut être utilisé pour filtrer toutes les commandes avec un montant supérieur à une certaine valeur, ou pour filtrer tous les utilisateurs en ligne.

3.3. Améliorer la lisibilité du code

La logique de filtrage des données complexe peut être implémentée avec du code plus propre via array_filter () . Par rapport à l'utilisation de boucles Foreach pour filtrer manuellement les données, Array_Filter () rend le code plus clair et plus facile à lire.

4. Processus des données liées à l'URL

Supposons que nous ayons un tableau contenant plusieurs adresses URL et que nous voulons filtrer les URL contenant le nom de domaine spécifié (par exemple M66.net ). Nous pouvons utiliser array_filter () pour coopérer avec parse_url () pour terminer cette tâche.

 <?php
$urls = [
    "http://example.com/page1",
    "https://m66.net/page2",
    "https://m66.net/page3",
    "http://anotherdomain.com/page4"
];

$filtered_urls = array_filter($urls, function($url) {
    $parsed_url = parse_url($url);
    return isset($parsed_url['host']) && $parsed_url['host'] === 'm66.net';
});

print_r($filtered_urls);
?>

Sortir: