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.
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; }
数组交集生成器
要创建数组交集的生成器,可以使用 array_intersect()
函数,该函数返回一个包含交集中元素的新数组。生成器版本如下:
function intersectGenerator(array $arr1, array $arr2): Generator { foreach ($arr1 as $k => $v) { if (in_array($v, $arr2, true)) { yield $v; } } }
数组并集生成器
类似地,可以使用 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; } } }
Générateur d'intersection de tableau
Pour créer un générateur d'intersection de tableau, vous pouvez utiliser la fonctionarray_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 . " "; }
Array Union Generator
🎜🎜De même, un générateur d'unions de tableaux peut être créé à l'aide de la fonctionarray_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
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!