Maison > développement back-end > tutoriel php > Comment calculer la différence de tableau en PHP

Comment calculer la différence de tableau en PHP

王林
Libérer: 2024-03-19 11:42:01
avant
968 Les gens l'ont consulté

L'éditeur PHP Xigua vous donnera une analyse détaillée de la façon dont PHP calcule la différence entre les tableaux. Dans le développement réel, comparer les différences entre deux tableaux est une exigence courante, ce qui peut nous aider à découvrir les éléments nouvellement ajoutés, supprimés et modifiés. Nous pouvons facilement implémenter cette fonction grâce aux fonctions intégrées de PHP et à une logique simple. Voyons ensuite comment utiliser PHP pour calculer la différence entre les tableaux afin de rendre votre travail de développement plus efficace et plus pratique.

Guide PHP pour calculer les différences de tableaux

Le calcul des différences entre les tableaux est le processus de comparaison et de contraste des différences entre les éléments de deux ou plusieurs tableaux. php propose plusieurs façons d'accomplir cette tâche, en fonction du résultat souhaité et de la structure du tableau.

fonction array_diff()

array_diff() La fonction est utilisée pour rechercher les éléments présents dans le premier tableau et non présents dans tous les autres tableaux. Sa syntaxe est la suivante :

array_diff($array1, $array2, ..., $arrayN);
Copier après la connexion

Par exemple :

$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "orange"];

$diff = array_diff($array1, $array2); // ["apple", "cherry"]
Copier après la connexion

fonction array_diff_assoc()

La fonction

array_diff_assoc() est similaire à array_diff_assoc() 函数类似于 array_diff(), mais elle compare également les clés du tableau. Il renvoie des éléments avec la même clé et la même valeur. Sa syntaxe est la suivante :

array_diff_assoc($array1, $array2, ..., $arrayN);
Copier après la connexion

Par exemple :

$array1 = ["apple" => 1, "banana" => 2, "cherry" => 3];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_assoc($array1, $array2); // ["apple" => 1, "cherry" => 3]
Copier après la connexion

fonction array_diff_key()

array_diff_key() La fonction est utilisée pour rechercher des éléments avec des clés différentes dans deux tableaux. Sa syntaxe est la suivante :

array_diff_key($array1, $array2, ..., $arrayN);
Copier après la connexion

Par exemple :

$array1 = ["apple" => 1, "banana" => 2];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_key($array1, $array2); // ["apple" => 1]
Copier après la connexion

Fonctions array_udiff() et array_uintersect()

array_udiff()array_uintersect() 函数用于使用用户自定义比较函数比较两个数组中的元素。array_udiff() 返回第一个数组中存在且在其他所有数组中不存在的元素,而 array_uintersect() Renvoie les éléments présents dans les deux tableaux. Leur syntaxe est la suivante :

array_udiff($array1, $array2, ..., $arrayN, $compareFunction);
array_uintersect($array1, $array2, ..., $arrayN, $compareFunction);
Copier après la connexion

Les fonctions de comparaison personnalisées doivent prendre deux paramètres (éléments du tableau) et renvoyer un entier :

  • Si le premier élément est inférieur au deuxième élément, renvoie -1.
  • Si le premier élément est égal au deuxième élément, renvoie 0.
  • Si le premier élément est supérieur au deuxième élément, renvoie 1.

Par exemple, la fonction de comparaison personnalisée suivante triera une gamme de fruits par nom :

function compareFruits($a, $b) {
return strcmp($a["name"], $b["name"]);
}
Copier après la connexion

Calculez la différence à l'aide d'une fonction de comparaison personnalisée :

$array1 = [
["name" => "apple", "price" => 1],
["name" => "banana", "price" => 2],
["name" => "cherry", "price" => 3],
];

$array2 = [
["name" => "banana", "price" => 2],
["name" => "orange", "price" => 4],
];

$diff = array_udiff($array1, $array2, "compareFruits"); // [["name" => "apple", "price" => 1], ["name" => "cherry", "price" => 3]]
Copier après la connexion

Dans l'exemple ci-dessus, compareFruits 函数按名称对数组元素进行排序,因此结果包含 array1 中存在且在 array2 est un fruit qui n'existe pas.

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!

Étiquettes associées:
source:lsjlt.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal