Maison >développement back-end >tutoriel php >Une manière élégante de calculer l'intersection et l'union de tableaux à l'aide de la fonction lambda en PHP

Une manière élégante de calculer l'intersection et l'union de tableaux à l'aide de la fonction lambda en PHP

WBOY
WBOYoriginal
2024-05-04 18:45:01877parcourir

En PHP, les fonctions lambda peuvent être utilisées comme un moyen élégant de gérer l'intersection et l'union de tableaux. Pour les intersections, utilisez la fonction array_filter() avec la fonction lambda pour filtrer les éléments afin de déterminer s'ils existent dans un autre tableau ; pour les unions, utilisez la fonction array_reduce() avec la fonction lambda pour fusionner des éléments uniques entre les tableaux. Ces méthodes simplifient les calculs et améliorent la flexibilité et la lisibilité du code.

Une manière élégante de calculer lintersection et lunion de tableaux à laide de la fonction lambda en PHP

Une manière élégante de calculer l'intersection et l'union de tableaux à l'aide de la fonction lambda en PHP

La fonction lambda en PHP, également connue sous le nom de fonctions anonymes, fournit un moyen simple de manipuler et de transformer des tableaux. En profitant de leur simplicité, nous pouvons implémenter des opérations sur les tableaux plus complexes avec moins de code.

Calculer l'intersection d'un tableau

L'intersection d'un tableau est l'ensemble des éléments qui existent simultanément dans deux ou plusieurs tableaux. Nous pouvons calculer l'intersection en utilisant la fonction array_intersect(), mais cela peut être fait de manière plus élégante en utilisant une fonction lambda. array_intersect() 函数计算交集,但使用 lambda 函数可以更优雅地实现。

<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];

$intersection = array_filter($array1, function($value) use ($array2) {
    return in_array($value, $array2);
});

print_r($intersection);
?>

输出:

Array
(
    [2] => 3
    [3] => 4
    [4] => 5
)

计算数组并集

数组并集是两个或多个数组中所有元素的集合。我们可以使用 array_merge()

<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];

$union = array_reduce($array1, function($result, $value) use ($array2) {
    if (!in_array($value, $array2)) {
        $result[] = $value;
    }
    return $result;
}, $array2);

print_r($union);
?>

Sortie :

Array
(
    [0] => 3
    [1] => 4
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 1
    [6] => 2
)

Compute array union

Une union de tableau est l'ensemble de tous les éléments dans deux tableaux ou plus. Nous pouvons calculer l'union en utilisant la fonction array_merge(), mais la fonction lambda offre une approche plus flexible.

<?php
$user1Cart = [1, 2, 3, 4, 5];
$user2Cart = [3, 4, 5, 6, 7];

$commonItems = array_filter($user1Cart, function($value) use ($user2Cart) {
    return in_array($value, $user2Cart);
});

// 展示共同购买的商品
foreach ($commonItems as $item) {
    echo $item . " ";
}
?>

Sortie :

3 4 5

🎜Cas pratique🎜🎜🎜Considérons un site Web de commerce électronique sur lequel vous devez calculer l'intersection de tous les articles dans le panier d'un utilisateur pour déterminer les articles achetés ensemble. Vous pouvez le faire facilement en utilisant une fonction lambda : 🎜rrreee🎜Sortie : 🎜rrreee

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