Dans PHP, array_diff_uassoc () est une fonction de tableau très puissante qui peut renvoyer des éléments avec différents noms de clés dans deux tableaux basés sur des fonctions de comparaison définies par l'utilisateur. Le premier paramètre de la fonction est généralement appelé tableau principal, qui joue un rôle très important tout au long de l'opération. Alors, pourquoi le premier paramètre du tableau joue-t-il un rôle important en tant que tableau principal dans la fonction array_diff_uassoc () ?
La fonction de la fonction array_diff_uassoc () consiste à comparer les valeurs clés de deux tableaux ou plus et des éléments de retour avec différents noms de clés. La comparaison est effectuée via la fonction de rappel fournie par l'utilisateur. La signature de la fonction est la suivante:
array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array
$ Array1 : Le tableau principal, le premier paramètre, c'est le tableau à comparer.
$ array2, ... : d'autres tableaux à comparer.
$ key_compare_func : une fonction de comparaison définie par l'utilisateur pour comparer les noms de clés d'un tableau.
Le rôle de référence du tableau principal
Le premier paramètre (tableau principal) de Array_Diff_uassoc () joue un rôle de référence dans le processus de comparaison. Lors de l'exécution d'une fonction, chaque nom de clé du tableau principal est comparé au nom de clé des autres tableaux. En fin de compte, les paires de valeurs clés retournées qui existent dans le tableau principal mais n'existent pas dans d'autres tableaux. Par conséquent, le réseau principal détermine le contenu du résultat.
Le tableau principal détermine la paire de valeurs de clé renvoyée
Le but de la fonction de comparaison est de renvoyer des paires de valeurs clés qui existent dans le tableau principal mais ne peuvent être trouvées dans d'autres tableaux. Quel que soit le résultat de la comparaison, seuls les éléments du tableau principal apparaîtront dans le résultat de retour final. Si les éléments du tableau principal ont les mêmes noms de clés dans d'autres tableaux et respectent les règles de comparaison, elles sont exclues du résultat.
Le rôle des fonctions de comparaison personnalisées
La fonction de comparaison définie par l'utilisateur ( key_compare_func ) est utilisée pour comparer les noms de clés, ce qui déterminera si les noms de clés des deux tableaux sont égaux. Cette fonction de comparaison reçoit généralement deux paramètres: la clé du tableau principal et la clé des autres tableaux. Grâce à cette fonction de comparaison, nous pouvons juger si les noms de clés sont égaux conformément à des règles spécifiques. Chaque nom de clé du tableau principal est comparé au nom de clé des autres tableaux.
Question de séquence
Un autre aspect à noter est que Array_Diff_uassoc () compare l'ordre du tableau principal et si d'autres tableaux contiennent des éléments avec le même nom de clé. Si les paires de valeurs clés des deux tableaux sont dans le même ordre, mais que les noms de clés du tableau principal ne sont pas trouvés dans d'autres tableaux, il sera toujours traité comme des éléments différents.
Affichons comment array_diff_uassoc () fonctionne avec un exemple simple. Supposons que nous ayons deux tableaux et que nous voulons trouver des éléments qui existent dans le premier tableau mais qui ne sont pas trouvés dans le deuxième tableau.
<?php
// Définir le tableau principal et un autre tableau
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 4
];
// Fonctions de comparaison personnalisées:Utilisé pour comparer les noms de clés
function compare_keys($key1, $key2) {
return strcmp($key1, $key2);
}
// utiliser array_diff_uassoc Comparez les tableaux
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
// Résultat de sortie
print_r($result);
?>
Array
(
[c] => 3
)
Dans cet exemple, le tableau principal $ array1 contient trois paires de valeurs clés, tandis que $ array2 n'a que deux paires de valeurs clés. Grâce à la fonction array_diff_uassoc () , nous trouvons la paire de valeurs de clé 'C' => 3 qui est dans $ array1 mais pas dans $ array2 . Comme vous pouvez le voir, le tableau retourné n'a que des éléments qui existent dans le tableau principal mais ne peuvent être trouvés dans d'autres tableaux.
En général, le premier paramètre de tableau dans array_diff_uassoc () joue un rôle décisif en tant que tableau principal, qui détermine le contenu du résultat de comparaison. En comparant les noms de clés du tableau principal avec ceux des autres tableaux, le retour ultime est un élément qui existe dans le tableau principal mais ne peut être trouvé dans d'autres tableaux. Par conséquent, la compréhension du rôle du tableau principal dans cette fonction est cruciale pour l'utilisation rationnelle de la fonction.