Aktueller Standort: Startseite> Neueste Artikel> Was sind die Tipps für die Verwendung von MAX () -Funktion und mehrdimensionales Array-Nisting in PHP? Wie kann man es erreichen?

Was sind die Tipps für die Verwendung von MAX () -Funktion und mehrdimensionales Array-Nisting in PHP? Wie kann man es erreichen?

gitbox 2025-06-16

1. Verwenden Sie die grundlegende MAX () -Funktion

Lassen Sie uns zunächst die grundlegende Nutzung der MAX () -Funktion überprüfen. Es kann ein Array oder eine Reihe einzelner Werte als Parameter empfangen und den Maximalwert unter ihnen zurückgeben. Zum Beispiel:

 <span><span><span class="hljs-variable">$values</span></span><span> = [</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>, </span><span><span class="hljs-number">40</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$values</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe 50</span></span><span>
</span></span>

Diese Funktion unterstützt auch mehrere Parameterüberschreitungen, wobei jeder Parameter als separater Wert verglichen wird. Zum Beispiel:

 <span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>, </span><span><span class="hljs-number">40</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe 50</span></span><span>
</span></span>

Für einfache Array -Strukturen ist die MAX () -Funktion sehr einfach zu verwenden. Aber wenn Arrays komplexer werden, insbesondere mehrdimensionale Arrays, wird die Situation unterschiedlich sein.


2. Verwenden Sie die MAX () -Funktion im mehrdimensionalen Array

In mehrdimensionalen Arrays kann die MAX () -Funktion nur die äußersten Array-Elemente standardmäßig verarbeiten. Wenn wir den Maximalwert in einem mehrdimensionalen Array finden möchten, müssen wir uns auf einige zusätzliche Verarbeitungsmethoden verlassen. Hier sind ein paar häufige Tipps.

2.1 Verwenden Sie Array_Map und Max, um zu kombinieren

Angenommen, wir haben ein mehrdimensionales Array, wobei jedes Subtarray des Arrays einige Zahlen enthält. Wenn wir in jedem Subtarray den Maximalwert erhalten möchten, können wir zuerst max () auf jedes Subtarray über die Funktion array_map () anwenden und dann max () verwenden, um den Maximalwert zu finden. Beispiele sind wie folgt:

 <span><span><span class="hljs-variable">$array</span></span><span> = [
    [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>],
    [</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>],
    [</span><span><span class="hljs-number">7</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>]
];

</span><span><span class="hljs-comment">// Holen Sie sich den Maximalwert jedes Subtarrays</span></span><span>
</span><span><span class="hljs-variable">$max_values</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'max'</span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>);

</span><span><span class="hljs-comment">// Ausgabe每个子数组的最大Wert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$max_values</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe [3, 6, 9]</span></span><span>

</span><span><span class="hljs-comment">// Holen Sie sich den Maximalwert</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$max_values</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe 9</span></span><span>
</span></span>

In diesem Beispiel wendet Array_MAP ('max', $ array) die MAX () -Funktion auf jedes Subtarray an, um den Maximalwert in jedem Subtarray zu erhalten. Verwenden Sie dann die MAX () -Funktion, um das Maximum dieser maximalen Werte zu erhalten.

2.2 Verwenden Sie Array_Column und Max, um zu kombinieren

Manchmal sind die Daten in einem mehrdimensionalen Array ein assoziatives Array, und jedes Subtarray hat einen bestimmten Schlüssel (z. B. "Punktzahl"), und wir möchten nur den Höchstwert des Wertes eines bestimmten Schlüssels finden. In diesem Fall ist Array_Column () sehr nützlich. Es kann eine bestimmte Spalte aller Subtarrays in einem mehrdimensionalen Array extrahieren und dann in Verbindung mit der MAX () -Funktion verwenden. Beispiele sind wie folgt:

 <span><span><span class="hljs-variable">$array</span></span><span> = [
    [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Alice'</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>],
    [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Bob'</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">90</span></span><span>],
    [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Charlie'</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">92</span></span><span>]
];

</span><span><span class="hljs-comment">// Alle Schüler extrahieren.scoreWert</span></span><span>
</span><span><span class="hljs-variable">$scores</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span>);

</span><span><span class="hljs-comment">// Ausgabe所有学生的分数</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$scores</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe [85, 90, 92]</span></span><span>

</span><span><span class="hljs-comment">// Holen Sie sich die maximale Punktzahl</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$scores</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe 92</span></span><span>
</span></span>

In diesem Beispiel extrahiert Array_Column ($ Array, 'Score') die Bewertungen für alle Schüler und verwendet dann die MAX () -Funktion, um die maximale Punktzahl zu finden.

2,3 Maximalwert von verschachtelten mehrdimensionalen Arrays

Wenn die Nistpegel des Arrays tiefer ist, können wir rekursive Methoden verwenden, um damit umzugehen. Rekursive Funktionen können verwendet werden, um durch mehrdimensionale Arrays zu iterieren und den Maximalwert zu finden. Hier ist ein Beispiel für eine rekursive Methode:

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getMaxValue</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$array</span></span></span><span>) {
    </span><span><span class="hljs-variable">$max</span></span><span> = PHP_INT_MIN;  </span><span><span class="hljs-comment">// 设置一个初始Wert</span></span><span>

    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$array</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>)) {
            </span><span><span class="hljs-comment">// 如果Wert是一个数组,Rufen Sie dann rekursiv an</span></span><span>
            </span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$max</span></span><span>, </span><span><span class="hljs-title function_ invoke__">getMaxValue</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>));
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-comment">// 否则直接与当前最大Wert比较</span></span><span>
            </span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$max</span></span><span>, </span><span><span class="hljs-variable">$value</span></span><span>);
        }
    }

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$max</span></span><span>;
}

</span><span><span class="hljs-variable">$array</span></span><span> = [
    [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>]],
    [</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>, [</span><span><span class="hljs-number">7</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>]],
    </span><span><span class="hljs-number">9</span></span><span>
];

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getMaxValue</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe 9</span></span><span>
</span></span>

Diese Methode durchquert rekursiv jede Schicht des Arrays. Wenn der aktuelle Wert ein Array ist, geht er zur nächsten Schicht, um weiter zu vergleichen. Wenn es sich um einen numerischen Wert handelt, wird es mit dem aktuellen Maximalwert verglichen. Schließlich wird der Höchstwert im gesamten mehrdimensionalen Array zurückgegeben.