Maison >développement back-end >tutoriel php >Explication détaillée de la fonction array_diff_assoc() en php
Comparez les noms de clé et les valeurs de clé des deux tableaux et renvoyez la différence :
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","b"=>"green","c"=>"blue"); $result=array_diff_assoc($a1,$a2); print_r($result); ?>
Définition et utilisation
array_diff_assoc( ) fonction Utilisé pour comparer les noms de clé et les valeurs de clé de deux (ou plus) tableaux et renvoyer la différence.
Cette fonction compare les noms de clé et les valeurs de cléde deux (ou plus) tableaux et renvoie un tableau de différence, qui inclut tout ce qui se trouve dans le tableau comparé (tableau1), mais pas dans aucun autre. nom de clé et valeur de clé dans le tableau de paramètres (array2 ou array3, etc.).
Syntaxe
array_diff_assoc(array1,array2,array3...);
Paramètres Le premier tableau à comparer avec d’autres tableaux.
array2 Obligatoire. Le tableau à comparer au premier tableau.
array3,... Facultatif. Tableau supplémentaire à comparer avec le premier tableau.
Renvoie un tableau de différence qui inclut tous les noms de clés et valeurs de clés qui se trouvent dans le tableau comparé (tableau1) mais ne se trouvent dans aucun autre tableau de paramètres (tableau2 ou tableau3, etc.).
Comparez les noms de clé et les valeurs de clé de deux tableaux et renvoyez la différence :
Comparez les noms de clé et les valeurs de clé de trois tableaux et renvoyez la différence :<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff_assoc($a1,$a2); print_r($result); ?>1 : Prélude à l'utilisation de array_diff et array_diff_assocDans le développement de centres commerciaux, il est souvent nécessaire d'ajouter, de supprimer, de modifier et de vérifier des données. Parmi eux, lors de la mise à jour des données, nous n'avons souvent besoin de mettre à jour qu'un champ ou une partie des champs, et nous n'avons pas besoin de mettre à jour tous les champs ensemble. Nous devons donc ici savoir lesquels doivent être mis à jour et lesquels ne le sont pas. besoin d'être mis à jour. array_diff et array_diff_assoc peuvent vérifier la différence du tableau. Il suffit de comparer l'ancien tableau de données à mettre à jour obtenu à partir de la base de données et le nouveau tableau de données soumis. array_diff et array_diff_assoc peuvent renvoyer le tableau de différence.
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","f"=>"green","g"=>"blue"); $a3=array("h"=>"red","b"=>"green","g"=>"blue"); $result=array_diff_assoc($a1,$a2,$a3); print_r($result); ?>
Deux : Apprenez array_diff et array_diff_assoc
array array_diff( array $array1 , array $array2 [, array $... ] ), renvoie un tableau et le tableau inclut array1 Tous les éléments du tableau qui ont des valeurs différentes de celles des autres tableaux et les noms de clés correspondants sont conservés. Cependant, cette fonction ne peut effectuer des comparaisons de différences que sur la première dimension des tableaux multidimensionnels. De plus, cette comparaison ne compare que les valeurs de clé, et n'a rien à voir avec les noms de clé (seules les valeurs avec des valeurs de clé différentes dans deux (ou plusieurs) tableaux seront trouvées). Exemple : array_diff peut trouver la différence c_pid entre deux tableaux :array_diff()
Cependant, si une valeur clé du tableau chevauche la valeur modifiée, array_diff ne peut pas détecter la valeur modifiée, comme suit :
Dans des circonstances normales, dans la comparaison entre array1 et array2, les éléments mis à jour sont c_pid et c_order, mais le résultat n'obtient que la différence de c_order. Pourquoi ?
Compréhension personnelle : array_diff() compare la valeur de array1 avec la valeur de array2, quel que soit le nom de la clé, donc la valeur de c_pid de array1 se trouve dans le c_level de array2, donc la différence de c_pid est ignoré.
Je n'entrerai pas dans les détails à ce sujet. Il est utilisé de la même manière que array_diff(). La différence est que sa comparaison se fait avec les noms de clés, ce qui signifie que ce qu'il trouve n'est que quelques-uns. clés dans le tableau. Éléments avec le même nom et des valeurs de clé différentes, c'est-à-dire que dans le deuxième cas de array_diff ci-dessus, il peut trouver la différence entre c_pid et c_order. Si vous n’y croyez pas, vous pouvez essayer. Je suis débutant, tout est difficile au début. C'est la première fois que j'écris un article de blog, même si je commande un plat, j'espère que tous les maîtres comprendront.array_diff_assoc()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!