Lors du traitement des tableaux en PHP, nous devons souvent filtrer et nettoyer les données. Traditionnellement, nous pourrions utiliser des boucles et des jugements conditionnels pour accomplir ces tâches, mais cette pratique peut conduire à un code gonflé et inefficace. Afin d'améliorer la lisibilité et l'efficacité d'exécution du code, nous pouvons utiliser certaines fonctions de tableau intégrées, telles que Array_Diff_Key () et Array_Filter () .
Cet article présentera comment utiliser ces deux fonctions pour nettoyer les données PHP et vous aider à écrire un code plus concis et plus efficace.
La fonction array_diff_key () est utilisée pour comparer les touches de deux tableaux, renvoyant un tableau contenant des touches qui existent dans le premier tableau mais pas dans le deuxième tableau.
Supposons que vous ayez un tableau contenant plusieurs paires de valeurs de clé, mais vous souhaitez supprimer des clés indésirables. Utiliser array_diff_key () est un bon choix. Il renvoie un nouveau tableau où seules les clés dont vous avez besoin sont conservées.
<?php
// Tableau d'origine
$data = [
'name' => 'John',
'email' => 'john@example.com',
'phone' => '1234567890',
'website' => 'https://m66.net'
];
// Clés à supprimer
$keysToRemove = ['phone', 'website'];
// utiliser array_diff_key() Supprimer les clés indésirables
$filteredData = array_diff_key($data, array_flip($keysToRemove));
// Résultat de sortie
print_r($filteredData);
?>
Array
(
[name] => John
[email] => john@example.com
)
Dans cet exemple, array_diff_key () supprime avec succès les clés du téléphone et du site Web en comparant les clés de la matrice de données $ et du tableau $ keystoreMove . array_flip () convertit les touches à retirer dans les clés du tableau et les transmet dans la fonction array_diff_key () comme le deuxième paramètre.
La fonction Array_Filter () est utilisée pour filtrer les éléments dans un tableau et des éléments de retour qui remplissent les conditions spécifiées. Vous pouvez utiliser cette fonction pour effectuer un filtrage plus fin des tableaux, tels que la conservation de données uniquement qui répondent à une certaine condition.
Supposons que vous ayez un tableau qui stocke les données pour plusieurs utilisateurs et que vous souhaitez seulement filtrer ces adresses e-mail valides, vous pouvez utiliser array_filter () pour terminer cette tâche.
<?php
// Tableau d'origine
$users = [
'user1' => ['name' => 'John', 'email' => 'john@example.com'],
'user2' => ['name' => 'Jane', 'email' => 'jane@invalid'],
'user3' => ['name' => 'Mark', 'email' => 'mark@valid.net'],
];
// utiliser array_filter() Filtre les utilisateurs valides
$validUsers = array_filter($users, function($user) {
return filter_var($user['email'], FILTER_VALIDATE_EMAIL) !== false;
});
// Résultat de sortie
print_r($validUsers);
?>
Array
(
[user1] => Array
(
[name] => John
[email] => john@example.com
)
[user3] => Array
(
[name] => Mark
[email] => mark@valid.net
)
)
Dans cet exemple, Array_Filter () filtre les utilisateurs dont les e-mails sont valides via la fonction de rappel. À l'aide de la fonction filter_var () , combinée avec la constante Filter_Validate_email , nous sommes en mesure de vérifier efficacement l'adresse e-mail de chaque utilisateur.
L'utilisation de Array_Diff_Key () et Array_Filter () peut vous aider à améliorer l'efficacité lorsque vous traitez avec de grands tableaux. Ces fonctions elles-mêmes sont écrites en C et sont plus rapides que les boucles PHP pures. Dans le même temps, ils peuvent vous aider à écrire plus propre et plus facile à lire le code.
En évitant la traversée et le jugement de boucle manuelle, vous pouvez réduire la complexité du code, réduire les erreurs potentielles et rendre le code plus facile à maintenir.
array_diff_key () vous permet de supprimer les clés inutiles du tableau et de garder les données propres.
Array_Filter () vous aide à filtrer les éléments dans un tableau basé sur les conditions, et seuls les éléments qui remplissent les conditions sont conservés.
Les deux fonctions peuvent améliorer l'efficacité du code, éviter les boucles redondantes et rendre le code plus concis et plus facile à lire.
En utilisant ces deux fonctions, vous pouvez facilement traiter les données de tableau, améliorer vos compétences en programmation PHP et écrire du code efficace et facile à maintenir.