Dans PHP, array_diff_uassoc () est une fonction très utile qui compare les paires de valeurs clés de deux tableaux ou plus et trouve des différences en fonction des fonctions de comparaison de valeur clé personnalisées. Lorsque nous utilisons array_diff_uassoc () , si nous oublions de passer dans la fonction de comparaison personnalisée, nous rencontrerons un problème d'erreur.
La fonction array_diff_uassoc () compare les paires de valeurs clés de deux tableaux ou plus et renvoie un tableau contenant des différences. Contrairement à array_diff_assoc () , array_diff_uassoc () nous permet de passer une fonction de comparaison personnalisée pour comparer les valeurs clés. La syntaxe est la suivante:
array_diff_uassoc(array $array1, array $array2, callable $value_compare_func): array
Array1 : le premier tableau.
Array2 : Le deuxième tableau ou plus de tableaux sont utilisés pour la comparaison.
Value_Compare_Func : une fonction de comparaison personnalisée pour comparer les paires de valeurs clés dans un tableau.
Voici un exemple simple montrant comment travailler correctement en utilisant array_diff_uassoc () :
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'd' => 4
];
// Fonctions de comparaison personnalisées,Comparez les valeurs
function compare_values($value1, $value2) {
return $value1 - $value2;
}
$result = array_diff_uassoc($array1, $array2, 'compare_values');
print_r($result);
?>
Résultat de sortie:
Array
(
[b] => 2
[c] => 3
)
Dans le code ci-dessus, array_diff_uassoc () compare les paires de valeurs clés en deux tableaux en fonction de la fonction compare_values et renvoie les paires de valeurs clés dans le tableau différent du tableau Array2 .
Si nous oublions de passer dans la fonction de comparaison personnalisée lors de l'appel Array_Diff_uassoc () , PHP lancera une erreur. Le troisième paramètre de la fonction array_diff_uassoc () est une fonction de rappel qui compare les valeurs des éléments du tableau. Si cette fonction de rappel n'est pas transmise, PHP ne peut pas effectuer des comparaisons de valeur clé et une erreur se produira naturellement.
Exemple d'erreur:
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'd' => 4
];
// 忘记传入Fonctions de comparaison personnalisées
$result = array_diff_uassoc($array1, $array2);
print_r($result);
?>
Erreur de sortie:
Warning: array_diff_uassoc() expects parameter 3 to be a valid callback in /path/to/script.php on line X
Comme indiqué ci-dessus, PHP lancera un avertissement que notre troisième paramètre (fonction de comparaison personnalisée) doit être une fonction de rappel valide. Si nous ne transmettons pas ce paramètre, PHP ne pourra pas continuer à effectuer des comparaisons de tableaux, ce qui entraînera l'interruption du programme et une erreur.
La solution à ce problème est très simple, assurez-vous simplement que lorsque vous appelez array_diff_uassoc () , une fonction de comparaison personnalisée valide est toujours fournie. Par exemple, dans l'exemple précédent, nous utilisons la fonction compare_values comme troisième paramètre:
$result = array_diff_uassoc($array1, $array2, 'compare_values');
Assurez-vous de passer une fonction de rappel valide à chaque fois que Array_Diff_uassoc () est appelé, afin que vous ne rencontrerez aucune erreur.
array_diff_uassoc () est une fonction PHP puissante qui nous permet de comparer les différences entre les paires de valeurs de clé de tableau basées sur des règles personnalisées. Cependant, si nous oublions de passer dans la fonction de comparaison personnalisée, nous rencontrerons une erreur. Par conséquent, assurez-vous de toujours fournir une fonction de rappel valide pour éviter cette erreur.