Pourquoi `array_diff_assoc()` inclut-il des lignes communes lors de la comparaison de tableaux 2D ?

Barbara Streisand
Libérer: 2024-10-26 06:06:02
original
802 Les gens l'ont consulté

Why Does `array_diff_assoc()` Include Common Rows When Comparing 2D Arrays?

Filtrer les lignes d'un tableau 2D à l'aide d'un autre tableau

Vous disposez de deux tableaux 2D et avez l'intention d'utiliser array_diff_assoc() pour identifier les lignes uniques dans le premier tableau qui ne sont pas présents dans le second. Cependant, vous rencontrez un problème où les lignes communes sont incluses dans le résultat.

Le problème vient de la façon dont array_diff_assoc() compare les valeurs. Il effectue une comparaison de chaînes stricte, ce qui signifie que les valeurs doivent être identiques en type et en valeur pour être considérées comme égales. Dans l'exemple donné :

<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($array1, $array2) est appelé, la représentation sous forme de chaîne des deux tableaux est "Array". Ainsi, la différence est détectée en fonction de la ligne supplémentaire dans $array1 ([12] => 'new q sets'). Par conséquent, la ligne commune ([11] => 'common set') est incluse dans la différence.

Pour résoudre ce problème, envisagez d'utiliser une approche de comparaison différente. Si les données des tableaux sont numériques ou peuvent être converties en numériques, vous pouvez utiliser array_diff_uassoc(), qui vous permet de spécifier une fonction de comparaison personnalisée. Alternativement, vous pouvez filtrer manuellement les lignes en parcourant les deux tableaux et en vérifiant l'égalité des valeurs.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!