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.
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).
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.
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'â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.
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'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é.
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
)
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.
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.
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:
Étiquettes associées:
array_filter