Maison > développement back-end > tutoriel php > Un moyen unique de générer une intersection et une union de tableaux à l'aide du générateur PHP

Un moyen unique de générer une intersection et une union de tableaux à l'aide du générateur PHP

王林
Libérer: 2024-05-02 11:39:01
original
1010 Les gens l'ont consulté

Les étapes pour utiliser un générateur pour générer des intersections et des unions de tableaux sont les suivantes : définir une fonction de générateur, utiliser rendement pour renvoyer une valeur et mémoriser son état actuel. Un générateur qui crée des intersections de tableaux, en utilisant la fonction array_intersect() pour renvoyer un nouveau tableau contenant les éléments de l'intersection. De même, créez un générateur pour l'union de tableaux, en utilisant la fonction array_merge() pour renvoyer un nouveau tableau contenant tous les éléments des deux tableaux. Utilisez une variable génératrice pour parcourir l'intersection ou l'union, en obtenant chaque élément.

Un moyen unique de générer une intersection et une union de tableaux à laide du générateur PHP

Une manière unique de générer une intersection et une union de tableaux à l'aide du générateur PHP

En PHP, un générateur est une fonction spéciale utilisée pour générer des données de séquence. Ils sont idéaux pour une utilisation dans les situations où de grands ensembles de données doivent être parcourus ou des résultats calculés paresseusement. Cet article montre une manière unique d'utiliser des générateurs pour générer des intersections et des unions de tableaux.

Syntaxe du générateur

Les fonctions du générateur sont définies en PHP à l'aide du mot-clé yield. Ce mot-clé permet à une fonction de renvoyer une valeur et de mémoriser son état actuel sans interrompre l'exécution. yield 关键字定义。该关键字允许函数在不中断执行的情况下返回一个值并记住其当前状态。

function myGenerator() {
    yield 1;
    yield 2;
    yield 3;
}
Copier après la connexion

数组交集生成器

要创建数组交集的生成器,可以使用 array_intersect() 函数,该函数返回一个包含交集中元素的新数组。生成器版本如下:

function intersectGenerator(array $arr1, array $arr2): Generator {
    foreach ($arr1 as $k => $v) {
        if (in_array($v, $arr2, true)) {
            yield $v;
        }
    }
}
Copier après la connexion

数组并集生成器

类似地,可以使用 array_merge()

function mergeGenerator(array $arr1, array $arr2): Generator {
    foreach ($arr1 as $v) {
        yield $v;
    }
    foreach ($arr2 as $v) {
        if (!in_array($v, $arr1, true)) {
            yield $v;
        }
    }
}
Copier après la connexion

Générateur d'intersection de tableau

Pour créer un générateur d'intersection de tableau, vous pouvez utiliser la fonction array_intersect(), qui renvoie un nouveau tableau contenant les éléments de l'intersection. La version du générateur est la suivante :

$arr1 = [1, 2, 3, 4, 5];
$arr2 = [3, 4, 5, 6, 7];

$intersection = intersectGenerator($arr1, $arr2);
$union = mergeGenerator($arr1, $arr2);

foreach ($intersection as $value) {
    echo $value . " ";
}
echo "\n";

foreach ($union as $value) {
    echo $value . " ";
}
Copier après la connexion

Array Union Generator

🎜🎜De même, un générateur d'unions de tableaux peut être créé à l'aide de la fonction array_merge(). Cette fonction renvoie un nouveau tableau contenant tous les éléments des deux tableaux (y compris les éléments en double). La version du générateur est la suivante : 🎜
3 4 5
1 2 3 4 5 6 7
Copier après la connexion
🎜🎜 Exemple pratique 🎜🎜🎜Considérez l'exemple suivant : 🎜rrreee🎜Ceci affichera : 🎜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!

Étiquettes associées:
source:php.cn
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