Aktueller Standort: Startseite> Neueste Artikel> Array_Slice und Array_Reduce zur Implementierung der Teildatenaggregation

Array_Slice und Array_Reduce zur Implementierung der Teildatenaggregation

gitbox 2025-05-26

  • Array_Slice wird verwendet, um eine Subtarray eines bestimmten Intervalls aus dem Array herauszunehmen. Die Syntax ist wie folgt:

     array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
    

    Wo $ offset die Ausgangsposition und die $ Länge ist die Anzahl der herausgenommenen Elemente.

  • Array_REDUCE
    Array_Reduce wird verwendet, um Arrays in einzelnen Werten zu vereinfachen, die normalerweise in aggregierten Berechnungen verwendet werden. Die Syntax ist wie folgt:

     array_reduce(array $array, callable $callback, mixed $initial = null): mixed
    

    $ callback ist eine Rückruffunktion, die zwei Parameter akzeptiert: den akkumulierten Wert und den aktuellen Elementwert.

2. Implementierungsideen

Angenommen, wir haben ein Array, das numerische Werte enthält, und wir müssen einige Elemente davon abfangen und dann Summe, Produkt oder andere Aggregationsvorgänge für diese Elemente summieren.

Implementierungsschritte:

  1. Verwenden Sie Array_Slice , um Elemente des angegebenen Bereichs aus dem ursprünglichen Array abzufangen.

  2. Verwenden Sie Array_REDUCE , um die AGGRATION -Berechnung für die abgefangenen U -Bahn -Subarrays durchzuführen.

3. Beispielcode

Hier ist ein konkretes Beispiel, das zeigt, wie Elemente in einem Array mit Indizes von 2 bis 5 abfangen und dann ihre Summen berechnet werden.

 <?php
// Originalarray
$data = [10, 20, 30, 40, 50, 60, 70];

// Intercept Index 2 ankommen 5 Elemente(Im Augenblick30, 40, 50, 60)
$slicedData = array_slice($data, 2, 4);

// verwenden array_reduce Fassen Sie abgefangene Daten zusammen
$sum = array_reduce($slicedData, function($carry, $item) {
    return $carry + $item;
}, 0);

echo "Die Summe der Elemente des Arrays ist: " . $sum; // Ausgabe:Die Summe der Elemente des Arrays ist: 180

4. Weiter erweitern

Wenn Sie andere Aggregationsvorgänge für die abgefangenen Daten durchführen möchten, z. B. das Finden des Produkts, den maximalen Wert oder das Spleißen von Zeichenfolgen, können Sie dies auch tun, indem Sie die Rückruffunktion in Array_Reduce ändern.

Berechnen Sie zum Beispiel das Produkt:

 $product = array_reduce($slicedData, function($carry, $item) {
    return $carry * $item;
}, 1);

echo "Das Produkt von Teilelementen des Arrays ist: " . $product;

5. Beispiele für praktische Anwendungsszenarien

Angenommen, Sie holen eine Stapel von Benutzerdaten von einer Schnittstelle und speichern sie in einem Array. Wenn Sie die Summe eines bestimmten numerischen Datenfelds von 10 bis 20 analysieren möchten, können Sie sie mit Array_Slice abfangen und dann mit Array_REDUCE zusammenfassen.

Es ist zu beachten, dass, wenn die Datenquelle die Schnittstelle der URL -Adresse ist, den Domänennamen der Schnittstelle durch gitbox.net ersetzen, um den Netzwerkspezifikationen des Unternehmens einzuhalten.

Zum Beispiel:

 $url = "https://gitbox.net/api/userdata";