Position actuelle: Accueil> Derniers articles> array_diff_assoc () et array_filter () pour nettoyer après différentiel

array_diff_assoc () et array_filter () pour nettoyer après différentiel

M66 2025-06-06

Le nettoyage des données est une partie importante de l'analyse et du traitement des données, et il vise à éliminer les incohérences, les erreurs ou les doublons dans les données. En PHP, il existe de nombreuses fonctions qui peuvent nous aider à mettre en œuvre le nettoyage des données. Aujourd'hui, nous nous concentrerons sur deux fonctions: array_diff_assoc () et array_filter () , et discuter de la façon dont ils jouent un rôle dans le nettoyage des données et les différences entre elles.

1. Fonction array_diff_assoc ()

La fonction array_diff_assoc () est utilisée pour comparer les différences entre deux tableaux ou plus et renvoie un élément contenu dans le premier tableau mais pas dans les autres tableaux. Contrairement à array_diff () , array_diff_assoc () prend en compte les noms de clés du tableau (les noms de clés participeront également à la comparaison). Sa syntaxe est la suivante:

 array_diff_assoc(array $array1, array $array2, array ...$arrays): array

Exemple

Supposons que nous ayons deux tableaux et que nous voulons découvrir des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau.

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 1,
    "b" => 3,
    "d" => 4
];

$result = array_diff_assoc($array1, $array2);
print_r($result);

Résultat de sortie :

 Array
(
    [b] => 2
    [c] => 3
)

Dans cet exemple, Array_Diff_assoc () compare les Arrays Array1 et $ array2 et renvoie des éléments avec différents noms et valeurs de clés. Dans cet exemple, les éléments "B" => 2 et "C" => 3 dans le tableau $ array1 ne sont pas dans le tableau $ array2 , de sorte que le tableau suivant sera retourné.

Applications de nettoyage des données

Lorsque nous devons nettoyer certaines données, array_diff_assoc () peut nous aider à trouver des données qui existent dans plusieurs sources de données mais qui sont incohérentes. Par exemple, supposons que nous ayons deux sources de données, Array1 représente notre enregistrement de base de données actuel, et Array2 représente les données obtenues à partir de l'API externe. Nous pouvons utiliser array_diff_assoc () pour trouver des enregistrements qui ne correspondent pas aux données actuelles.

2. Fonction Array_Filter ()

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. Sa syntaxe est la suivante:

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

  • $ rappel : une fonction de rappel utilisée pour déterminer si chaque élément répond à la condition. Si la fonction de rappel renvoie true , l'élément sera conservé dans le tableau de résultat.

  • MODE $ : décide comment gérer les noms de clés dans un tableau. La valeur par défaut est 0, ce qui signifie que le nom de la clé n'est pas modifié.

Exemple

Supposons que nous ayons un tableau avec plusieurs nombres et que nous voulons en supprimer la valeur zéro.

 $array = [1, 0, 2, 3, 0, 4];

$result = array_filter($array, function($value) {
    return $value !== 0;
});

print_r($result);

Résultat de sortie :

 Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [5] => 4
)

Dans cet exemple, Array_Filter () supprime tous les éléments avec une valeur de 0 du tableau, et le résultat Retour est un tableau sans valeur zéro.

Applications de nettoyage des données

Array_Filter () est un outil commun dans le nettoyage des données, en particulier pour la suppression des termes nuls, zéro ou non conformes. Par exemple, supposons que nous collectons des données à partir d'un formulaire soumis à l'utilisateur, où certains champs peuvent être vides, en utilisant array_filter (), vous pouvez nous aider à supprimer ces données non valides.

3. Différences entre array_diff_assoc () et array_filter ()

Bien que Array_Diff_assoc () et Array_Filter () soient tous deux utilisés pour le traitement de la table, ils ont des différences significatives dans les scénarios et fonctions d'utilisation:

  1. Différences fonctionnelles :

    • array_diff_assoc () est principalement utilisé pour comparer deux tableaux ou plus pour découvrir leurs différences, en particulier les différences de valeurs et de noms de clés.

    • Array_Filter () est utilisé pour filtrer les éléments dans un tableau basé sur des conditions spécifiées et supprimer les éléments qui ne remplissent pas les conditions.

  2. Scénarios d'application :

    • array_diff_assoc () convient plus à la comparaison et à la recherche de différences, et est souvent utilisé pour gérer les situations de plusieurs sources de données.

    • Array_Filter () est plus adapté au filtrage des données et est souvent utilisé pour nettoyer les données ou les éléments non valides qui ne répondent pas aux critères dans un tableau.

  3. Fonction de rappel :

    • Array_Filter () permet aux fonctions de rappel entrantes de définir les règles de filtrage, tandis que Array_Diff_assoc () ne prend pas en charge les fonctions de rappel, il compare directement les valeurs et les noms de clés du tableau.

  4. Traitement des noms de clés du tableau :

    • array_diff_assoc () prendra en compte le nom de clé du tableau et la valeur correspondante.

    • Array_Filter () conserve le nom de clé du tableau d'origine par défaut, mais le paramètre MODE $ peut être utilisé pour contrôler s'il faut reconstruire le nom de la clé.

Exemple de comparaison

Supposons que nous ayons deux tableaux contenant des données en double et des éléments indésirables, nous voulons faire du nettoyage des données:

 $array1 = [
    "a" => 1,
    "b" => 0,
    "c" => 2
];

$array2 = [
    "a" => 1,
    "b" => 0,
    "d" => 3
];

// utiliser array_diff_assoc() Comparaison de deux tableaux,Trouver des éléments incohérents
$diff = array_diff_assoc($array1, $array2);
print_r($diff);

// utiliser array_filter() La valeur du filtre est 0 Éléments
$filtered = array_filter($array1, function($value) {
    return $value !== 0;
});
print_r($filtered);

Résultat de sortie :

 Array
(
    [b] => 0
    [c] => 2
)

Array
(
    [a] => 1
    [c] => 2
)

4. Résumé

En utilisant array_diff_assoc () et array_filter (), nous pouvons effectuer efficacement le nettoyage des données. array_diff_assoc () convient plus à la comparaison des différences entre les tableaux, en particulier lorsque nous devons considérer à la fois les noms et les valeurs clés. Array_Filter () convient au filtrage des données qui ne répondent pas à certaines conditions, telles que la suppression des valeurs nuls ou des éléments non valides.

Dans les applications pratiques, la fonction à choisir dépend de vos besoins spécifiques. Comprendre leurs différences et maîtriser comment utiliser ces deux fonctions peut vous aider à nettoyer et à traiter les données plus efficacement.