Pendant le processus de développement Web, nous devons souvent filtrer les données soumises par le formulaire afin que seuls les éléments d'entrée qui remplissent certaines conditions spécifiques soient conservés. PHP fournit une fonction très utile array_filter () , qui peut non seulement être utilisée pour supprimer les valeurs nulles dans les tableaux, mais également personnaliser les fonctions de rappel pour implémenter une logique de filtrage plus complexe.
Cet article présentera comment utiliser array_filter () pour filtrer conditionnellement les données soumises dans le formulaire pour vous aider à écrire un code PHP plus concis et maintenable.
Array_Filter () est une fonction de traitement de la table fournie par PHP. Sa syntaxe est la suivante:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ Array : Le tableau à filtrer.
$ rappel : (facultatif) Une fonction de rappel pour définir les conditions de filtre.
$ mode : (facultatif) Vous pouvez utiliser array_filter_use_key ou array_filter_use_both pour spécifier les paramètres de fonction de rappel.
Si la fonction de rappel n'est pas adoptée, array_filter () supprimera automatiquement les éléments avec false dans le tableau (tels que false , 0 , "" , null , [] , etc.).
Supposons que nous ayons un formulaire d'enregistrement des utilisateurs qui soumet les champs suivants:
Nom
âge
S'il faut s'abonner à un e-mail
Nous voulons filtrer les champs avec des valeurs remplies et ne conserver que les données des utilisateurs de plus de 18 ans.
$_POST = [
'name' => 'Alice',
'email' => '',
'age' => 17,
'subscribe' => 'yes'
];
// Critères de filtre personnalisés
$filteredInput = array_filter($_POST, function ($value, $key) {
// Sauter les valeurs vides
if ($value === '' || $value === null) {
return false;
}
// contre age Les champs sont traités de manière spécifique
if ($key === 'age') {
return (int)$value > 18;
}
return true;
}, ARRAY_FILTER_USE_BOTH);
print_r($filteredInput);
Array
(
[name] => Alice
[subscribe] => yes
)
Comme vous pouvez le voir, le courrier électronique est des chaînes vides qui sont abattues, l'âge inférieur ou égal à 18 est également filtré, et les autres sont des champs valides qui nous tiennent à cœur.
Vous pouvez également utiliser cette méthode pour nettoyer les paramètres d'obtention des demandes d'URL, par exemple:
$_GET = [
'search' => 'PHP',
'page' => '0',
'sort' => null,
'token' => 'abc123'
];
$cleanQuery = array_filter($_GET, function ($value) {
return $value !== '' && $value !== null;
});
$queryString = http_build_query($cleanQuery);
$url = "https://m66.net/search.php?" . $queryString;
echo $url;
https://m66.net/search.php?search=PHP&page=0&token=abc123
Notez que la valeur de la page de «0» n'est pas filtrée car nous excluons explicitement le jugement de 0 et conservons des paramètres significatifs.
L'utilisation de Array_Filter () peut considérablement simplifier notre logique de code lors du traitement de l'entrée du formulaire, et est particulièrement adapté à la vérification ou au prétraitement des données légères. Lorsqu'il est utilisé avec des fonctions de rappel, il peut répondre aux besoins de la plupart des filtrages conditionnels et est une fonction très pratique en PHP.
Il convient de noter que Array_Filter () n'est pas un outil universel pour la vérification des données. Pour les besoins de vérification plus complexes, il est toujours recommandé de combiner les extensions de filtre de PHP (telles que filter_var () ) ou d'utiliser un cadre de vérification complet pour le traitement.
J'espère que vous pourrez faire bon usage de Array_Filter () pour améliorer l'efficacité de développement lors du traitement des données du formulaire la prochaine fois que vous les traitez!
Étiquettes associées:
array_filter