Comparaison des différences de valeurs associatives dans des tableaux bidimensionnels
Souvent, en programmation, nous devons comparer deux tableaux et extraire uniquement les différences. Cette tâche devient plus délicate lorsque les tableaux contiennent des données associatives, en particulier lorsque la comparaison doit se concentrer sur des valeurs clés spécifiques.
Considérons deux tableaux avec des lignes de données associatives :
$array1 = array( array('ITEM' => 1), array('ITEM' => 2), array('ITEM' => 3), ); $array2 = array( array('ITEM' => 2), array('ITEM' => 3), array('ITEM' => 1), array('ITEM' => 4), );
L'objectif est de filtrer le deuxième tableau pour exclure les éléments présents dans le premier tableau, mais en comparant spécifiquement les valeurs 'ITEM'.
Utiliser array_udiff avec Fonction de comparaison personnalisée
La fonction array_diff() est insuffisante à cet effet car elle compare des lignes entières. Pour nous concentrer exclusivement sur les valeurs 'ITEM', nous définissons une fonction de comparaison personnalisée pour array_udiff().
function udiffCompare($a, $b) { return $a['ITEM'] - $b['ITEM']; }
Cette fonction soustrait les valeurs 'ITEM' et renvoie la différence.
Maintenant , on peut utiliser cette fonction dans array_udiff() :
$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');
La variable $arrdiff contiendra le souhaité résultat :
Array ( [3] => Array ( [ITEM] => 4 ) )
Cette approche préserve la structure du tableau existant et se concentre sur les valeurs clés spécifiques 'ITEM' à des fins de comparaison.
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!