Position actuelle: Accueil> Derniers articles> Explication détaillée de la fonction array_uintersect_uassoc () en php: comment comparer la clé et la valeur intersection des tableaux

Explication détaillée de la fonction array_uintersect_uassoc () en php: comment comparer la clé et la valeur intersection des tableaux

gitbox 2025-06-13

1. Quelle est la fonction array_uintersect_uassoc ()

Dans PHP, Array_uintersect_uassoc () est une fonction utilisée pour calculer l'intersection de deux tableaux ou plus. Contrairement au Array_INTERSECT traditionnel, Array_uintersect_uassoc () compare non seulement les valeurs du tableau, mais compare également les clés du tableau et prend en charge les fonctions de rappel définies par l'utilisateur pour contrôler le processus de comparaison.

1.1 Définition de la fonction

La fonction array_uintrect_uassoc () est définie comme suit:

 
function array_uintersect_uassoc(array $array1, array $array2, array ...$arrays, callable $key_compare_func, callable $value_compare_func) : array;
        

Description du paramètre de fonction:

  • Array1, Array2, ... : Array qui doit être comparé.
  • key_compare_func : une fonction de rappel utilisée pour comparer les touches de tableau.
  • Value_Compare_Func : une fonction de rappel utilisée pour comparer les valeurs du tableau.

Valeur de retour: cette fonction renvoie un tableau contenant l'intersection de la clé et de la valeur correspondant entre deux tableaux ou plus.

1.2 Fonction de rappel

La fonction array_uintersect_uassoc () nécessite deux fonctions de rappel pour comparer les clés et les valeurs d'un tableau. Ces deux fonctions de rappel doivent renvoyer une valeur entière pour déterminer si les deux éléments sont égaux ou en taille. Retourner 0 signifie correspondre et retourner positif ou négatif signifie décalage.

Voici un exemple montrant comment utiliser la fonction array_uintersect_uassoc () et sa fonction de rappel:

 
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('c' => 'cherry', 'd' => 'date', 'e' => 'elderberry');

$result = array_uintersect_uassoc(
    $array1,
    $array2,
    'strcasecmp',  // Fonction de rappel de comparaison du nom de clé
    function($a, $b) {  // Fonction de rappel de comparaison de valeur
        if ($a === $b) {
            return 0;
        }
        return ($a > $b) ? 1 : -1;
    }
);

print_r($result);
        

Le résultat de la sortie est:

 Array ([c] => cerise)

Dans le code ci-dessus, nous utilisons StrCasecmp () pour comparer les noms de clés (cas insensible) et définissons une fonction anonyme pour comparer la taille de la valeur.

2. Utilisez des scénarios de fonction array_uintersect_uassoc ()

La fonction array_uintersect_uassoc () est très appropriée pour comparer les éléments communs dans plusieurs tableaux, en particulier lorsque vous devez comparer les clés et les valeurs d'un tableau basé sur des règles personnalisées. Par exemple, supposons que vous traitez les intérêts et les passe-temps des utilisateurs d'un site Web, vous pouvez utiliser cette fonction pour trouver des intérêts communs entre plusieurs utilisateurs.

3. Exemple d'application de la fonction array_uintersect_uassoc ()

Supposons que nous ayons un club automobile et que chaque membre a des informations sur les véhicules différents, nous voulons trouver les véhicules partagés entre le club et les membres. Nous pouvons utiliser array_uintersect_uassoc () pour comparer:

 
$member_cars = array(
    'Amanda' => 'Porsche',
    'Tina' => 'Audi',
    'Luis' => 'Mercedes',
    'Tom' => 'BMW'
);

$club_cars = array(
    'Rob' => 'Porsche',
    'Tina' => 'Audi',
    'Lena' => 'Mercedes',
    'Tom' => 'BMW'
);

$common_cars = array_uintersect_uassoc(
    $member_cars,
    $club_cars,
    function($key1, $key2) {
        return strcmp($key1, $key2);
    },
    function($value1, $value2) {
        return strcmp($value1, $value2);
    }
);

print_r($common_cars);
        

Le résultat de la sortie est:

 Array ([Tina] => Audi [Luis] => Mercedes [Tom] => BMW)

Cet exemple montre comment comparer les véhicules que les membres et les clubs possèdent.

4. Résumé

La fonction array_uintersect_uassoc () est un outil de comparaison de tableau efficace qui peut vous aider à trouver des clés et des valeurs communes dans plusieurs tableaux. Avec les fonctions de rappel personnalisées, vous pouvez contrôler avec précision les règles de comparaison des clés et des valeurs, afin que vous puissiez les appliquer de manière flexible à différents scénarios.

Lorsque vous utilisez cette fonction, n'oubliez pas de fournir la fonction de rappel appropriée pour gérer les comparaisons de clé et de valeur pour garantir des résultats précis.