Position actuelle: Accueil> Derniers articles> Utilisez array_diff_ukey () en conjonction avec array_intersect_key ()

Utilisez array_diff_ukey () en conjonction avec array_intersect_key ()

M66 2025-05-15

En PHP, le traitement des tableaux est l'une des tâches les plus courantes du travail de programmation quotidien. Pour améliorer l'efficacité des opérations du tableau, PHP fournit de nombreuses fonctions intégrées, parmi lesquelles Array_Diff_ukey () et Array_Inthersect_Key () sont des fonctions de fonctionnement de l'arrivée très utiles. Dans certains cas, la combinaison de ces deux fonctions peut considérablement améliorer l'efficacité du traitement des réseaux, en particulier lorsque vous devez effectuer des différences clés ou des opérations d'intersection sur deux tableaux.

1. Introduction à array_diff_ukey () et array_intrect_key ()

  1. Array_diff_ukey ()

    La fonction array_diff_ukey () renvoie les éléments en deux tableaux qui calculent la différence par les noms de clés. Le processus de comparaison est basé sur une fonction de rappel définie par l'utilisateur, qui renvoie 0 , 1 ou -1 pour déterminer si les clés sont les mêmes.

    grammaire:

     array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
    

    Exemple:

     $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
    $array2 = ['a' => 4, 'd' => 5];
    
    $result = array_diff_ukey($array1, $array2, 'strcasecmp');
    print_r($result);
    
  2. Array_INTERSECT_KEY ()

    La fonction Array_INTERSECT_KEY () renvoie des éléments avec le même nom de clé en deux tableaux. Cette fonction compare les noms de clés du tableau et ne se soucie pas de la valeur correspondant aux noms de clés.

    grammaire:

     array_intersect_key(array $array1, array $array2): array
    

    Exemple:

     $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
    $array2 = ['a' => 4, 'd' => 5];
    
    $result = array_intersect_key($array1, $array2);
    print_r($result);
    

2. Utilisez array_diff_ukey () et array_intersect_key () pour améliorer l'efficacité du fonctionnement du tableau

Dans le développement réel, nous devons souvent comparer les différences ou les intersections des noms clés dans les opérations de tableau. À l'heure actuelle, la combinaison de Array_Diff_ukey () et Array_Intrect_Key () peut nous aider à implémenter des fonctions de manière plus efficace.

Exemple 1: Obtenez d'abord l'intersection, puis effectuez l'opération de différence

Supposons que vous ayez deux tableaux, l'un contenant des détails de plusieurs utilisateurs et l'autre contenant les ID de certains utilisateurs spécifiques. Si vous souhaitez obtenir des utilisateurs communs dans ces deux tableaux et en exclure certains utilisateurs, la combinaison de ces deux fonctions peut être facilement implémentée.

 // Tableau des utilisateurs
$users = [
    'user1' => ['name' => 'John', 'age' => 25],
    'user2' => ['name' => 'Jane', 'age' => 22],
    'user3' => ['name' => 'Tom', 'age' => 28],
    'user4' => ['name' => 'Lucy', 'age' => 24],
];

// Les utilisateurs qui ont besoin d'attentionID
$focus_users = [
    'user1' => ['name' => 'John'],
    'user2' => ['name' => 'Jane'],
];

// Des utilisateurs suivants,Obtenir et $users Informations utilisateur appariées
$intersected_users = array_intersect_key($users, $focus_users);

// Exclure davantage certains utilisateursID
$exclude_users = ['user2'];
$result = array_diff_ukey($intersected_users, $exclude_users, 'strcasecmp');

print_r($result);

Explication du code:

  1. array_intersect_key () obtient d'abord les utilisateurs avec le même nom de clé que le tableau focus_users dans le tableau des utilisateurs.

  2. array_diff_ukey () exclut ensuite les utilisateurs dans le tableau excluant_users du résultat de l'intersection (c'est-à-dire les utilisateurs avec le nom de clé «user2» ).

Cette combinaison de méthodes peut nous aider à réduire les opérations de boucle multiples dans le développement réel et à éviter des calculs répétés, améliorant ainsi l'efficacité de l'exécution du programme.

3. Optimisation et pratique des performances

  1. Évitez les calculs répétés <br> Lorsque vous traitez avec de grands tableaux, l'utilisation de l'array_diff_ukey () ou array_intersect_key () peut impliquer de nombreux calculs. En l'utilisant en combinaison, plusieurs étapes peuvent être effectuées en une seule opération, en évitant les calculs répétés et ainsi améliorer les performances.

  2. Utilisez des fonctions de rappel de manière appropriée <br> Lorsque vous devez comparer les noms de clés en fonction des règles personnalisées, il est très important d'utiliser la fonction de rappel de array_diff_ukey () . La conception raisonnable des fonctions de rappel peut rendre les noms de clés plus efficaces. Pour les besoins de comparaison courants, essayez d'utiliser des fonctions de comparaison intégrées, telles que StrCasecMP ou StrCMP .

  3. Faites attention à la taille des données <br> Dans le cas de grands ensembles de données, les opérations de tableau peuvent consommer beaucoup de mémoire et calculer des ressources. Vous pouvez envisager d'optimiser la structure des données pour éviter de stocker de grandes quantités de données redondantes en mémoire en même temps. Lorsque vous utilisez la combinaison de array_diff_ukey () et array_intersect_key () , il est préférable de filtrer d'abord les données inutiles pour réduire l'utilisation de la mémoire.

4. Résumé

En combinant Array_Diff_ukey () et Array_Inthersect_key () , nous pouvons manipuler efficacement les tableaux en PHP, réduisant le calcul redondant et l'utilisation de la mémoire. La sélection correcte des combinaisons de fonctions peut nous aider à améliorer les performances de notre code, en particulier lorsque vous traitez de grands tableaux, ce qui peut considérablement améliorer l'efficacité de l'exécution. L'utilisation de ces fonctions rationnellement améliore non seulement la lisibilité du code, mais nous rend également plus efficaces lorsque vous traitez des opérations de tableau complexes.