Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-27 07:25:03
original
515 Les gens l'ont consulté

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>
Copier après la connexion

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

Array ([0] => "Array" [1] => "Array")
Array ([0] => "Array")
Copier après la connexion

É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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal