Position actuelle: Accueil> Derniers articles> Comparaison de plusieurs tableaux simultanément: array_diff_assoc () Techniques d'utilisation des paramètres multiples

Comparaison de plusieurs tableaux simultanément: array_diff_assoc () Techniques d'utilisation des paramètres multiples

M66 2025-06-06

array_diff_assoc () est une fonction très utile en php. Il compare non seulement les valeurs de deux tableaux, mais compare également leurs noms de clés (paires de valeurs clés). Grâce à cette fonction, les développeurs peuvent facilement trouver les différences de noms et de valeurs de clés entre deux tableaux ou plus, et sont souvent utilisés dans des scénarios tels que la comparaison des données et l'analyse de différence.

Dans cet article, nous plongerons dans la fonction array_diff_assoc () et expliquerons comment l'utiliser pour comparer plusieurs tableaux via plusieurs instances. Surtout lorsque plusieurs tableaux sont impliqués, comment utiliser cette fonction pour trouver la différence plus efficacement.

Utilisation de base de l' array_diff_assoc ()

Tout d'abord, passons en revue l'utilisation de base de Array_Diff_assoc () . La fonction prend deux ou plusieurs paramètres de tableau et renvoie un tableau de paires de valeurs clés contenues dans le premier tableau mais pas dans les autres tableaux.

grammaire:

 array_diff_assoc(array $array1, array $array2, array ...$arrays): array
  • Array1 : Le premier tableau à comparer.

  • Array2 : Le deuxième tableau qui doit être comparé au premier tableau.

  • Vous pouvez fournir plusieurs tableaux de comparaison, array_diff_assoc () renvoie une paire de valeurs clés qui est incluse dans Array1 mais pas dans d'autres tableaux.

Exemple:

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

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

Sortir:

 Array
(
    [c] => cherry
)

Dans cet exemple simple, Array_Diff_assoc () renvoie un tableau contenant uniquement les paires de valeurs de clé unique à Array1 ["C" => "Cherry"] car cet élément n'a pas de paire de valeurs clés correspondante dans Array2 .

Comment comparer plusieurs tableaux

Si vous souhaitez comparer plusieurs tableaux en même temps, array_diff_assoc () peut également être géré. Après avoir passé plusieurs tableaux, PHP compare le premier tableau avec tous les autres tableaux, et le résultat retourné ne contient que des paires de valeurs clés qui existent dans le premier tableau mais pas dans aucun autre tableau.

Exemple:

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana");
$array3 = array("a" => "apple", "d" => "date");

$result = array_diff_assoc($array1, $array2, $array3);
print_r($result);
?>

Sortir:

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

Dans cet exemple, array_diff_assoc () compare trois tableaux et renvoie un résultat contenant des paires de valeurs clés dans Array1 qui ne sont pas dans les deux autres tableaux. En particulier, la clé B existe dans le deuxième tableau, mais sa valeur est cohérente avec la valeur de la clé B dans le premier tableau, donc la banane est exclue, ne laissant que cerise .

Application pratique: trouver des différences

Supposons que nous développons un système d'achat en ligne et que nous ayons deux tableaux représentant deux versions de la liste de produits. Nous devons découvrir les différences entre les anciennes et les nouvelles listes et voir quelles mises à jour sont dans les nouveaux produits et ce qui est hors des anciens produits.

Exemple:

 <?php
$old_products = [
    "101" => "Apple iPhone 12",
    "102" => "Samsung Galaxy S20",
    "103" => "Huawei P40"
];

$new_products = [
    "101" => "Apple iPhone 13",
    "102" => "Samsung Galaxy S20",
    "104" => "Google Pixel 5"
];

// Découvrez des produits qui ne figurent pas sur la nouvelle liste
$discontinued_products = array_diff_assoc($old_products, $new_products);
print_r($discontinued_products);
?>

Sortir:

 Array
(
    [103] => Huawei P40
)

Dans cet exemple, la fonction array_diff_assoc () renvoie un tableau contenant les produits abandonnés. Comme vous pouvez le voir, Huawei P40 est un produit qui existe dans l'ancienne liste de produits mais disparaît dans le nouveau.

Scénario d'application de remplacement d'URL

Parfois, dans un projet, nous avons peut-être besoin de modifier l'URL de l'URL dans le tableau, comme la modification de tous les noms de domaine d' OldSite.com à M66.net . Nous pouvons gérer rapidement cette situation en combinant la fonction array_diff_assoc () et l'expression régulière.

Exemple:

 <?php
$links = [
    "homepage" => "https://oldsite.com/page1",
    "product" => "https://oldsite.com/product/xyz",
    "contact" => "https://oldsite.com/contact"
];

// Remplacer le nom de domaine
foreach ($links as $key => $url) {
    if (strpos($url, "oldsite.com") !== false) {
        $links[$key] = str_replace("oldsite.com", "m66.net", $url);
    }
}

print_r($links);
?>

Sortir:

 Array
(
    [homepage] => https://m66.net/page1
    [product] => https://m66.net/product/xyz
    [contact] => https://m66.net/contact
)

De cette façon, nous pouvons remplacer par lots tous les noms de domaine URL dans le tableau.

résumé

Grâce à cet article, nous comprenons comment utiliser la fonction array_diff_assoc () dans PHP pour comparer les différences entre plusieurs tableaux. Qu'il s'agisse d'une comparaison simple de deux tableaux ou d'une comparaison complexe impliquant plusieurs tableaux, array_diff_assoc () peut fournir une solution efficace. En particulier dans le développement réel, cette fonction est un outil très pratique lorsqu'il est nécessaire de traiter des tâches telles que la comparaison de la liste, l'analyse de la différence de données, le remplacement par lots des noms de domaine URL, etc.