Position actuelle: Accueil> Derniers articles> Utilisez array_diff_assoc () pour comparer deux tableaux avec des clés

Utilisez array_diff_assoc () pour comparer deux tableaux avec des clés

M66 2025-05-12

array_diff_assoc () est une fonction intégrée en PHP qui compare deux tableaux pour trouver des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau, et la comparaison est basée sur des noms de clés et des valeurs de clés. Par conséquent, il considère non seulement les valeurs du tableau, mais aussi la correspondance des clés.

Prototype de fonction

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

Description du paramètre:

  • $ array1 : le premier tableau d'entrée (tableau qui doit être comparé).

  • $ array2 : le deuxième tableau d'entrée (tableau qui se compare au premier).

Valeur de retour:

Renvoie un tableau contenant des éléments qui existent dans $ array1 et n'existent pas dans $ array2 . La comparaison est basée sur des paires de valeurs clés: ce n'est que lorsque les noms et valeurs de clés sont différents peuvent être considérés comme différents.

Exemple: comparaison de deux tableaux avec des clés

Supposons que nous ayons deux tableaux, comme suit:

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$array2 = [
    'a' => 'apple',
    'b' => 'blueberry',
    'd' => 'date',
    'e' => 'elderberry'
];

Nous voulons utiliser la fonction array_diff_assoc () pour découvrir des paires de valeurs clés qui existent dans $ array1 mais pas dans $ array2 .

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

Résultat de sortie:

 Array
(
    [b] => banana
    [c] => cherry
)

Dans cet exemple, array_diff_assoc () trouve les paires de valeurs clés dans le tableau $ array1 et $ array2 . Comme vous pouvez le voir, «b» => «banane» et «c» => «cerise» sont des éléments dans $ array1 , mais dans $ array2, ils ont des valeurs différentes ou ils n'existent pas du tout.

Pourquoi utiliser array_diff_assoc () ?

  • Comparaison des valeurs clés : Contrairement à la fonction Array_Diff () , Array_Diff_assoc () compare non seulement les valeurs du tableau, mais vérifie également le nom de clé lors de l'exécution d'une comparaison différentielle.

  • Comparaison précise des données ordonnées : si vous avez besoin de comparer la structure et le contenu des données de deux tableaux associatifs, et pas seulement la même valeur, array_diff_assoc () est un choix idéal.

Combiné avec des applications pratiques: comparaison avec les URL

Supposons que nous ayons deux tableaux contenant les données URL du site Web. Nous voulons découvrir les différences dans certaines URL dans deux tableaux, en particulier les noms de domaine différents. Pour suivre les exigences, nous avons remplacé la partie du nom de domaine de l'URL d'origine avec m66.net , par le code suivant:

 $array1 = [
    'home' => 'http://example.com/home',
    'about' => 'http://example.com/about',
    'contact' => 'http://example.com/contact'
];

$array2 = [
    'home' => 'http://m66.net/home',
    'about' => 'http://m66.net/about',
    'contact' => 'http://m66.net/contact'
];

foreach ($array1 as $key => $url) {
    $array1[$key] = str_replace('example.com', 'm66.net', $url);
}

foreach ($array2 as $key => $url) {
    $array2[$key] = str_replace('m66.net', 'm66.net', $url);
}

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

Résultat de sortie:

 Array
(
    [home] => http://m66.net/home
    [about] => http://m66.net/about
    [contact] => http://m66.net/contact
)

Dans ce cas, la fonction array_diff_assoc () nous aide à trouver les différences de contenu d'URL entre deux tableaux. En remplaçant l'exemple.com par m66.net , nous assurons la cohérence pendant le processus de comparaison.

Résumer

array_diff_assoc () est une fonction très utile, surtout lorsque vous devez comparer les tableaux avec des paires de valeurs clés. Il se concentre non seulement sur les valeurs du tableau, mais compare également les clés pour garantir que les différences peuvent être identifiées avec précision dans les applications pratiques.

J'espère que cet article vous a aidé à comprendre comment utiliser array_diff_assoc () pour comparer les tableaux et trouver des différences. Cette fonction est très adaptée aux scénarios où des structures de données complexes sont nécessaires (telles que les URL, les éléments de configuration, etc.).