Heim  >  Artikel  >  Backend-Entwicklung  >  Elegante Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe der Lambda-Funktion in PHP zu berechnen

Elegante Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe der Lambda-Funktion in PHP zu berechnen

WBOY
WBOYOriginal
2024-05-04 18:45:01864Durchsuche

In PHP können Lambda-Funktionen als elegante Möglichkeit zum Umgang mit Schnittmengen und Vereinigungen von Arrays verwendet werden. Verwenden Sie für Schnittmengen die Funktion array_filter() mit der Funktion lambda, um Elemente zu filtern, um festzustellen, ob sie in einem anderen Array vorhanden sind. Verwenden Sie für Vereinigungen die Funktion array_reduce() mit der Funktion lambda, um eindeutige Elemente zwischen Arrays zusammenzuführen. Diese Methoden vereinfachen Berechnungen und verbessern die Flexibilität und Lesbarkeit des Codes.

Elegante Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe der Lambda-Funktion in PHP zu berechnen

Elegante Möglichkeit, Schnittmenge und Vereinigung von Arrays mithilfe der Lambda-Funktion in PHP zu berechnen

Die Lambda-Funktion in PHP, auch anonyme Funktionen genannt, bietet eine einfache Möglichkeit, Arrays zu verarbeiten und umzuwandeln. Indem wir uns ihre Einfachheit zunutze machen, können wir komplexere Array-Operationen mit weniger Code implementieren.

Array-Schnittpunkt berechnen

Array-Schnittpunkt ist die Menge von Elementen, die gleichzeitig in zwei oder mehr Arrays vorhanden sind. Wir können den Schnittpunkt mithilfe der Funktion array_intersect() berechnen, dies kann jedoch eleganter mithilfe einer Lambda-Funktion erfolgen. 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);
?>

Ausgabe:

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

Array-Vereinigung berechnen

Eine Array-Vereinigung ist die Menge aller Elemente in zwei oder mehr Arrays. Wir können die Vereinigung mit der Funktion array_merge() berechnen, aber die Lambda-Funktion bietet einen flexibleren Ansatz.

<?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 . " ";
}
?>

Ausgabe:

3 4 5

🎜Praktischer Fall🎜🎜🎜Stellen Sie sich eine E-Commerce-Website vor, auf der Sie die Schnittmenge aller Artikel im Warenkorb eines Benutzers berechnen müssen, um die Artikel zu ermitteln, die häufig gekauft werden. Sie können dies ganz einfach mit einer Lambda-Funktion tun: 🎜rrreee🎜Ausgabe: 🎜rrreee

Das obige ist der detaillierte Inhalt vonElegante Möglichkeit, Array-Schnittpunkt und -Vereinigung mithilfe der Lambda-Funktion in PHP zu berechnen. 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