La fonction php array_udiff() est utilisée pour comparer les noms de clés et les valeurs de clés de deux (ou plus) tableaux et renvoyer la différence. Cette comparaison est effectuée via une fonction de rappel fournie par l'utilisateur. Si le premier argument est considéré comme inférieur, égal ou supérieur au deuxième argument, un entier inférieur à zéro, égal à zéro ou supérieur à zéro doit être renvoyé, respectivement. Cet article explique comment utiliser la fonction array_udiff() à travers des exemples,
array_udiff_assoc - calcule l'ensemble de différences de tableaux avec vérification d'index et utilise la fonction de rappel pour comparer les données
Basique syntaxe :
array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func )
Cette comparaison est effectuée via une fonction de rappel fournie par l'utilisateur. Si le premier argument est considéré comme inférieur, égal ou supérieur au deuxième argument, un entier inférieur à zéro, égal à zéro ou supérieur à zéro doit être renvoyé, respectivement.
Remarque : notez que cette fonction ne vérifie qu'une seule dimension du tableau multidimensionnel. Bien sûr, vous pouvez utiliser array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); pour vérifier des dimensions plus profondes.
Introduction aux paramètres
Valeur de retour
array_udiff_assoc() renvoie un tableau qui inclut tout dans array1 mais pas dans les autres Les valeurs dans le tableau des paramètres. Notez que contrairement à array_diff() et array_udiff(), les noms de clés sont également utilisés à des fins de comparaison. La comparaison des données du tableau est effectuée à l'aide des fonctions de rappel fournies par l'utilisateur. C'est le comportement opposé à array_diff_assoc(), qui utilise une fonction interne pour la comparaison.
Instance
<?php class cr { private $priv_member; function cr($val) { $this->priv_member = $val; } static function comp_func_cr($a, $b) { if ($a->priv_member === $b->priv_member) return 0; return ($a->priv_member > $b->priv_member) ? 1 : -1; } } $a = array( "0.1" => new cr(9) , "0.5" => new cr(12) , 0 => new cr(23) , 1 => new cr(4) , 2 => new cr(-15) , ); $b = array( "0.2" => new cr(9) , "0.5" => new cr(22) , 0 => new cr(3) , 1 => new cr(4) , 2 => new cr(-15) , ); $result = array_udiff_assoc($a, $b, array( "cr", "comp_func_cr" )); print_r($result); ?>
Résultat de l'exécution :
Array ( [0.1] => cr Object ( [priv_member:private] => 9 ) [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )
Dans l'exemple ci-dessus, vous pouvez voir que la paire clé-valeur "1" => new cr(4) apparaît dans les deux tableaux en même temps et n'est donc pas incluse dans la sortie de cette fonction.
Merci d'avoir lu, j'espère que cela pourra vous aider, merci pour votre soutien à ce site !
Pour plus d'exemples php array_udiff_assoc de calcul de la différence entre deux tableaux, veuillez faire attention au site Web PHP chinois !