Maison  >  Article  >  développement back-end  >  Introduction à la fonction array_udiff_assoc() de PHP

Introduction à la fonction array_udiff_assoc() de PHP

WBOY
WBOYoriginal
2023-06-27 09:52:391430parcourir

En langage PHP, un tableau (Array) est un type de données très courant. Il peut stocker plusieurs valeurs et prend en charge diverses opérations courantes, telles que l'ajout, la suppression, le parcours et la recherche. Pour les besoins de traitement des tableaux, PHP fournit de nombreuses fonctions intégrées, notamment la fonction array_udiff_assoc(). Cet article présentera l'utilisation et des exemples de cette fonction, et discutera de ses différences et de ses connexions avec d'autres fonctions d'opération de tableau.

Utilisation de la fonction array_udiff_assoc()

La fonction array_udiff_assoc() consiste à comparer les clés et les valeurs de deux ou plusieurs tableaux, à rechercher des éléments dans le premier tableau qui sont différents des autres tableaux et à utiliser la fonction de rappel pour précisez le comparateur. La syntaxe complète de la fonction est la suivante :

array array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func );

où $array1 est le premier tableau, $array2 est le deuxième tableau ou les tableaux suivants, et $value_compare_func est la fonction de rappel utilisée pour comparer les éléments du tableau. Cette fonction utilise une fonction de rappel pour personnaliser le comparateur afin de traiter la valeur du tableau au lieu d'utiliser l'algorithme de comparaison interne, ce qui rend la fonction très flexible et extensible.

Le format de la fonction de rappel est le suivant :

int callback ( mixed $a, mixed $b )

Cette fonction doit renvoyer une valeur entière indiquant la relation de taille entre les deux éléments qu'elle détecte, et sa valeur peut être négative, nulle ou positive. Si $a est inférieur à $b, la fonction renvoie un nombre négatif ; si $a est égal à $b, la fonction renvoie zéro ; si $a est supérieur à $b, la fonction renvoie un nombre positif. Par exemple, si vous souhaitez comparer deux nombres par ordre croissant, vous pouvez utiliser la fonction de rappel suivante :

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

Dans la fonction ci-dessus, si $a est inférieur à $b, la fonction renvoie -1, soit $a se classe devant $b ; si $ Si a est égal à $b, la fonction renvoie 0, c'est-à-dire que $a et $b sont identiques ; si $a est supérieur à $b, la fonction renvoie 1, c'est-à-dire , $a se classe derrière $b.

La valeur de retour de la fonction array_udiff_assoc() est un tableau qui contient tous les éléments qui n'existent que dans le premier tableau. Il est à noter que cette fonction compare uniquement les clés et valeurs des éléments du tableau, quel que soit l'ordre des éléments.

Exemple de fonction array_udiff_assoc()

Pour mieux comprendre la fonction array_udiff_assoc(), un exemple est donné ci-dessous.

function cmp($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "yellow", "b" => "purple", "c" => "blue");
$array3 = array("a" => "red", "b" => "green", "c" => "blue");

$result = array_udiff_assoc($array1, $array2, $array3, "cmp");
print_r($result);

Dans l'exemple ci-dessus, nous avons défini une fonction de rappel cmp() pour comparer les tailles de deux éléments du tableau. Ensuite, nous avons créé trois tableaux $array1, $array2 et $array3, et attribué les valeurs comme :

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "yellow", "b" => "purple", "c" => "blue");
$array3 = array("a" => "red", "b" => "green", "c" => "blue");

Dans ces trois tableaux, les clés et les valeurs des éléments du tableau sont différentes. Nous utilisons ensuite la fonction array_udiff_assoc() pour comparer les trois tableaux et trouver les éléments qui n'existent que dans $array1. Le résultat est :

Array
(
    [a] => red
    [b] => green
)

Cela montre que seuls les deux éléments rouge et vert existent dans $array1, mais n'existent pas dans $array2 et $array3. Les autres éléments sont soit identiques à $array2 et $array3, soit diffèrent de la clé ou de la valeur et ne satisfont donc pas aux critères de comparaison.

La différence et la connexion entre la fonction array_udiff_assoc() et les autres fonctions d'opération de tableau

Dans le langage PHP, il existe de nombreuses fonctions d'opération de tableau similaires à array_udiff_assoc(), telles que array_udiff(), array_diff_assoc(), array_diff_key() et array_intersect( ), etc. . Ces fonctions ont des fonctions similaires. Elles comparent deux ou plusieurs tableaux et trouvent les différences ou les similitudes entre eux. Cependant, leurs méthodes de mise en œuvre spécifiques et leurs scénarios d'utilisation sont légèrement différents.

Tout d'abord, la fonction array_udiff_assoc() est une fonction de comparaison d'ensembles de différences multi-tableaux, qui peut comparer les différences entre plusieurs tableaux et renvoyer des éléments qui n'existent que dans le premier tableau. D'autres fonctions sont des fonctions de comparaison pour deux tableaux. Par exemple, array_diff_key() compare en fonction de la différence des valeurs clés des deux tableaux, tandis que array_intersect() trouve les éléments qui existent dans les deux tableaux en même temps et renvoie . Par conséquent, dans les applications pratiques, différentes fonctions de fonctionnement du réseau doivent être sélectionnées en fonction des besoins spécifiques et des structures de données.

De plus, la fonction array_udiff_assoc() utilise une fonction de rappel pour spécifier le comparateur, ce qui rend la fonction très flexible et extensible. Le comparateur peut être personnalisé en fonction des besoins réels et gère de manière flexible la comparaison des éléments du tableau. Dans d'autres fonctions gourmandes en tableaux, vous pouvez également utiliser des fonctions de rappel pour spécifier des comparateurs, tels que array_reduce() et array_walk(), etc. Ensemble, ces fonctions reflètent la flexibilité et l'évolutivité du langage PHP et améliorent considérablement la capacité de traiter les données des tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn