Maison  >  Article  >  développement back-end  >  Pourquoi array_diff_assoc() renvoie-t-il des éléments communs au lieu d'éléments uniques ?

Pourquoi array_diff_assoc() renvoie-t-il des éléments communs au lieu d'éléments uniques ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 07:25:03407parcourir

Why does array_diff_assoc() return common elements instead of unique elements?

Filtrage de tableaux à l'aide de array_diff_assoc()

En PHP, array_diff_assoc() est une fonction utile pour comparer des tableaux et identifier les différences. Cependant, les utilisateurs peuvent rencontrer un problème où la sortie résultante inclut des éléments communs au lieu des éléments uniques attendus.

Pour comprendre cela, examinons de plus près le comportement de array_diff_assoc(). Cette fonction effectue une comparaison d'égalité stricte entre les paires clé-valeur. Cela signifie que la représentation sous forme de chaîne des éléments doit être identique pour la comparaison.

Considérez l'exemple suivant :

<code class="php">$array1 = [
    [12 => 'new q sets'],
    [11 => 'common set']
];

$array2 = [
    [11 => 'common set']
];</code>

Lorsque array_diff_assoc() est appliqué à ces tableaux, il compare les éléments suivants :

Array ([0] => "Array" [1] => "Array")
Array ([0] => "Array")

Étant donné que les paires clé-valeur ne sont pas identiques, la comparaison renvoie l'élément [1] du premier tableau ([1] => Array( [11] => common set )). Ce n'est pas le résultat souhaité, car il inclut l'élément commun.

Pour résoudre ce problème, les utilisateurs doivent s'assurer que les représentations sous forme de chaîne des paires clé-valeur sont identiques dans les deux tableaux. Ceci peut être réalisé en utilisant un formatage ou des types de données cohérents. De plus, la conversion de valeurs en chaînes (par exemple, (string) $element) peut aider à garantir une comparaison d'égalité stricte.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn