Heim >Backend-Entwicklung >PHP-Tutorial >Einzigartige Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe des PHP-Generators zu generieren

Einzigartige Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe des PHP-Generators zu generieren

王林
王林Original
2024-05-02 11:39:01987Durchsuche

Die Schritte zum Verwenden eines Generators zum Generieren von Array-Schnittpunkten und -Vereinigungen sind wie folgt: Definieren Sie eine Generatorfunktion, verwenden Sie yield, um einen Wert zurückzugeben, und merken Sie sich dessen aktuellen Status. Ein Generator, der Array-Schnittpunkte erstellt und dabei die Funktion array_intersect() verwendet, um ein neues Array zurückzugeben, das die Elemente im Schnittpunkt enthält. Erstellen Sie auf ähnliche Weise einen Generator für die Vereinigung von Arrays, indem Sie die Funktion array_merge() verwenden, um ein neues Array zurückzugeben, das alle Elemente in beiden Arrays enthält. Verwenden Sie eine Generatorvariable, um über den Schnittpunkt oder die Vereinigung zu iterieren und jedes Element zu erhalten.

Einzigartige Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe des PHP-Generators zu generieren

Einzigartige Möglichkeit, Array-Schnittpunkt und -Vereinigung mit dem PHP-Generator zu generieren

In PHP ist ein Generator eine spezielle Funktion, die zum Generieren von Sequenzdaten verwendet wird. Sie eignen sich ideal für den Einsatz in Situationen, in denen große Datenmengen verarbeitet oder Ergebnisse träge berechnet werden müssen. Dieser Artikel zeigt eine einzigartige Möglichkeit, Generatoren zum Generieren von Array-Schnittpunkten und -Vereinigungen zu verwenden.

Generator-Syntax

Generatorfunktionen werden in PHP mit dem Schlüsselwort yield definiert. Mit diesem Schlüsselwort kann eine Funktion einen Wert zurückgeben und sich ihren aktuellen Status merken, ohne die Ausführung zu unterbrechen. 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;
        }
    }
}

Array-Schnittpunktgenerator

Um einen Generator für Array-Schnittpunkte zu erstellen, können Sie die Funktion array_intersect() verwenden, die ein neues Array zurückgibt, das die Elemente im Schnittpunkt enthält. Die Generatorversion lautet wie folgt:

$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

🎜🎜Ebenso kann ein Generator für Array Unions mit der Funktion array_merge() erstellt werden. Diese Funktion gibt ein neues Array zurück, das alle Elemente in beiden Arrays enthält (einschließlich doppelter Elemente). Die Generatorversion lautet wie folgt: 🎜
3 4 5
1 2 3 4 5 6 7
🎜🎜 Praktisches Beispiel 🎜🎜🎜Betrachten Sie das folgende Beispiel: 🎜rrreee🎜Dies wird ausgedruckt: 🎜rrreee

Das obige ist der detaillierte Inhalt vonEinzigartige Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe des PHP-Generators zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn