Dans PHP, Array_Map () et Array_Diff () sont deux fonctions de fonctionnement de la table très couramment utilisées. array_map () est utilisé pour appliquer une fonction de rappel à chaque élément d'un tableau, tandis que Array_Diff () est utilisé pour calculer la différence entre deux tableaux. En combinant ces deux fonctions, nous pouvons implémenter des fonctions de conversion de données et de comparaison de données puissantes.
La fonction array_map () prend une fonction de rappel et un ou plusieurs tableaux en tant que paramètres et renvoie un nouveau tableau où chaque élément est le résultat de la fonction de rappel s'appliquant aux éléments de tableau correspondants.
grammaire:
array_map(callable $callback, array $array1, array $array2, ...);
La fonction Array_Diff () est utilisée pour comparer les éléments de deux tableaux ou plus et des éléments de retour qui existent dans le premier tableau mais pas dans d'autres tableaux.
grammaire:
array_diff(array $array1, array $array2, ...);
Supposons que nous ayons deux tableaux: l'un est un tableau contenant des informations personnelles utilisateur, et l'autre est un tableau d'enregistrements utilisateur obtenu à partir de la base de données. Nous pouvons utiliser array_diff () pour savoir quelles informations utilisateur n'existent pas dans la base de données, puis utiliser array_map () pour convertir ou formater ces informations.
Ce qui suit est un exemple montrant comment utiliser ces deux fonctions pour effectuer la conversion de données et la comparaison du tableau.
<?php
// Tableau d'informations utilisateur simulé
$users = [
['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@example.com'],
['id' => 2, 'name' => 'Li si', 'email' => 'lisi@example.com'],
['id' => 3, 'name' => 'Wang wu', 'email' => 'wangwu@example.com']
];
// Tableau d'enregistrement de la base de données simulée(Supposons qu'il n'y a que les deux premiers enregistrements dans la base de données)
$dbUsers = [
['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@m66.net'],
['id' => 2, 'name' => 'Li si', 'email' => 'lisi@m66.net']
];
// Obtenez des utilisateurs qui ne sont pas dans l'enregistrement de la base de données
$usersToAdd = array_diff(
array_map(function($user) { return $user['email']; }, $users),
array_map(function($user) { return $user['email']; }, $dbUsers)
);
// Sortir l'utilisateur à ajouter
echo "Les utilisateurs qui doivent être ajoutés:\n";
foreach ($usersToAdd as $userEmail) {
echo $userEmail . "\n";
}
?>
Préparation des données: nous avons deux tableaux $ utilisateurs et $ dbusers , où $ les utilisateurs sont les données utilisateur à traiter, et $ dbusers est l'enregistrement utilisateur qui existe déjà dans la base de données.
Comparaison du tableau: utilisez array_map () pour extraire le champ de messagerie de chaque élément dans les deux tableaux, puis utilisez array_diff () pour découvrir l'adresse e-mail chez $ les utilisateurs et lesquels n'existent pas dans $ dbusers .
Résultat de sortie: Utilisez ForEach pour boucle pour sortir l'adresse e-mail de l'utilisateur que vous devez ajouter.
En combinant array_map () et array_diff () , nous pouvons implémenter des fonctions de conversion de données et de comparaison de données très puissantes. Cette approche peut nous aider à découvrir rapidement les différences entre les tableaux et à convertir les résultats ou à les traiter davantage. Dans le développement réel, ces techniques peuvent nous aider à traiter et à nettoyer efficacement les données.
Étiquettes associées:
array_map