Array_REDUCE ist eine integrierte Array-Verarbeitungsfunktion in PHP, mit der jedes Element im Array an eine Rückruffunktion übergeben und sie Schritt für Schritt in einen Wert ansammelt. Die grundlegende Syntax ist wie folgt:
<span><span><span class="hljs-title function_ invoke__">array_reduce</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$initial</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span>): </span><span><span class="hljs-keyword">mixed</span></span><span>
</span></span>$ Array : Das zu verarbeitende Array.
$ Callback : Die Rückruffunktion ist für die Verarbeitung jedes Elements im Array verantwortlich.
$ initial : Optionaler Anfangswert, Standard zu NULL .
Die Rückruffunktion empfängt zwei Parameter:
Akkumulierter Wert (der letzte Rückgabewert oder Anfangswert).
Das derzeit verarbeitete Array -Element.
Angenommen, wir haben ein Array und möchten den Maximalwert über Array_Reduce finden. Wir können eine Rückruffunktion so entwerfen, dass sie immer den aktuellen Maximalwert zurückgibt.
Betrachten Sie das folgende Code -Beispiel:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Originalarray</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">7</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-comment">// verwenden array_reduce Finden Sie den Maximalwert</span></span><span>
</span><span><span class="hljs-variable">$max_value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_reduce</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$carry</span></span><span>, </span><span><span class="hljs-variable">$item</span></span><span>) {
</span><span><span class="hljs-comment">// Wenn carry Leer,Dann nehmen Sie das aktuelle Element als carry Der Anfangswert von</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$carry</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>;
}
</span><span><span class="hljs-comment">// zurückkehren carry Und item Der Maximalwert in</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$carry</span></span><span> > </span><span><span class="hljs-variable">$item</span></span><span> ? </span><span><span class="hljs-variable">$carry</span></span><span> : </span><span><span class="hljs-variable">$item</span></span><span>;
});
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"数组Der Maximalwert in是: "</span></span><span> . </span><span><span class="hljs-variable">$max_value</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Im obigen Code definieren wir ein Array namens $ Array , das einige ganze Zahlen enthält.
Wir iterieren über das Array mit der Funktion array_reduce . In der Rückruffunktion wählen wir den maximalen Wert davon, indem wir den aktuellen Carry und das Element vergleichen. Carry speichert das Ergebnis des letzten Vergleichs, und das Element ist das derzeit verarbeitete Element.
Wenn das Tragen null ist (d. H. Die erste Iteration), verwenden wir den aktuellen Element direkt als Anfangswert des Tragens .
Schließlich gibt Array_Reduce das größte Element im gesamten Array zurück.
In PHP können wir die MAX () -Funktion verwenden, um den Maximalwert im Array zu lösen, und der Code ist sehr präzise:
<span><span><span class="hljs-variable">$max_value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>Die Verwendung von Array_Reduce für Akkumulationsvorgänge hat jedoch die folgenden Vorteile:
Hohe Flexibilität : Array_Reduce ermöglicht es uns, den Akkumulationsprozess anzupassen und an komplexere Anforderungen anzupassen.
Funktionelle Programmierung : Array_Reduce kann einen prägnanteren funktionalen Programmierstil erreichen, und der Code ist prägnanter und eleganter.
Skalierbarkeit : Wenn die Anforderungen komplexer werden, ist Array_Reduce einfacher in mehrstufige Rechenlogik, anstatt sich auf die Rückgabe maximaler Werte wie der MAX () -Funktion zu beschränken.
Diese Methode zur Berechnung der maximalen Wertschöpfung von Array_Reduce hat ein großes Anwendungspotential in der tatsächlichen Entwicklung, insbesondere bei der Verarbeitung komplexer Daten. Zum Beispiel:
Während der Datenverarbeitung müssen die Informationen Schritt für Schritt aggregiert werden, und in bestimmten Fällen muss der Höchstwert im Array nachverfolgt werden.
Es ist notwendig, einen spezifischen Maximalwert aus den Daten komplexer Strukturen zu extrahieren, z.
Durch die Funktion "Array_Reduce" kann die Akkumulationsoperation von Array -Elementen realisiert werden, und der maximale Wert im Array kann gelöst werden. Diese Methode hat nicht nur eine hohe Flexibilität, sondern hilft Entwicklern auch, die funktionalen Programmierfunktionen von PHP besser zu verstehen und anzuwenden. Für einfache Szenarien ist die Verwendung von PHP-integrierter Max () -Funktion von PHP natürlich effizienter, aber wenn Ihre Bedürfnisse etwas komplizierter sind, ist Array_REDUCE zweifellos eine gute Wahl.