Position actuelle: Accueil> Derniers articles> Comparaison des performances: array_diff () vs array_diff_assoc ()

Comparaison des performances: array_diff () vs array_diff_assoc ()

M66 2025-05-13

En php, array_diff () et array_diff_assoc () sont deux fonctions de comparaison de table couramment utilisées. Ils sont souvent utilisés pour trouver les différences entre deux tableaux, mais ils se comportent différemment. Cet article discutera en détail des différences entre les deux fonctions et leurs différences de performance.

1. Comment fonctionne Array_Diff ()

La fonction Array_Diff () est utilisée pour comparer deux tableaux et renvoyer tous les éléments du premier tableau qui ne sont pas dans le deuxième tableau. Il compare les valeurs de deux tableaux et ignore les clés du tableau.

grammaire:

 array_diff(array $array1, array $array2, array ...$arrays): array

Exemple:

 $array1 = [1, 2, 3, 4];
$array2 = [2, 3, 5];

$result = array_diff($array1, $array2);
print_r($result);  // Sortir: [0 => 1, 3 => 4]

Dans cet exemple, Array_Diff () compare les valeurs de $ array1 et $ array2 , des éléments de retour dans $ array1 qui ne sont pas dans $ array2 .

2. Comment fonctionne array_diff_assoc ()

La fonction array_diff_assoc () est également utilisée pour comparer deux tableaux, mais contrairement à array_diff () , il compare non seulement les valeurs, mais compare également les noms de clés. Par conséquent, seuls les éléments qui ne correspondent pas aux valeurs et aux clés sont considérés comme différents.

grammaire:

 array_diff_assoc(array $array1, array $array2, array ...$arrays): array

Exemple:

 $array1 = [1 => 'a', 2 => 'b', 3 => 'c'];
$array2 = [1 => 'a', 2 => 'x'];

$result = array_diff_assoc($array1, $array2);
print_r($result);  // Sortir: [3 => 'c']

Dans cet exemple, array_diff_assoc () compare les clés et les valeurs de $ array1 et $ array2 . Il considère que l'élément C avec la clé 3 n'existe pas dans le deuxième tableau, il renvoie donc cet élément.

3. Comparaison des performances: array_diff () et array_diff_assoc ()

array_diff () et array_diff_assoc () sont tous deux des fonctions utilisées pour trouver des différences de tableau, mais en raison de leurs différents principes de travail, ils diffèrent également par les performances.

  • Array_Diff () compare uniquement les valeurs, ce qui le rend généralement plus efficace lors du fonctionnement, en particulier lorsque les tableaux sont grands, car son processus de comparaison implique uniquement des valeurs et ne nécessite pas de vérification des clés.

  • array_diff_assoc () doit non seulement comparer les valeurs, mais aussi les clés, donc elle le fait plus lors de la comparaison, ce qui peut le faire fonctionner légèrement, en particulier lorsqu'il est utilisé dans de grands tableaux.

4. Lequel est le plus efficace?

Si vous ne vous souciez que des valeurs du tableau et ne vous souciez pas des différences de clés, l'utilisation de Array_Diff () est plus efficace. Si vous devez considérer les différences de clé et de valeur, Array_Diff_assoc () est essentiel, mais il aura une surcharge de performance plus importante.

5. Résumé

  • La comparaison des valeurs à l'aide d'array_diff () est plus efficace et convient aux cas où seules les valeurs du tableau doivent être prises en compte.

  • L'utilisation de Array_Diff_assoc () pour comparer les clés et les valeurs est plus précise, mais elle est légèrement inférieure en performance, et convient aux scénarios où les touches et les valeurs doivent correspondre.

Si vous vous souciez uniquement de la différence de valeurs dans votre application, le choix de Array_Diff () apportera de meilleures performances. Si les touches et les valeurs doivent être strictement adaptées, array_diff_assoc () est un choix plus approprié.