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

Comment calculer la différence de tableau en PHP

王林
王林avant
2024-03-19 11:40:07952parcourir

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);

Par exemple :

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

$diff = array_diff($array1, $array2); // ["apple", "cherry"]

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);

Par exemple :

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

$diff = array_diff_assoc($array1, $array2); // ["apple" => 1, "cherry" => 3]

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);

Par exemple :

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

$diff = array_diff_key($array1, $array2); // ["apple" => 1]

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);

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"]);
}

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]]

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer