Heim > Backend-Entwicklung > PHP-Tutorial > Wie finde ich effizient Minimal- und Maximalwerte in einem verschachtelten PHP-Array?

Wie finde ich effizient Minimal- und Maximalwerte in einem verschachtelten PHP-Array?

Barbara Streisand
Freigeben: 2024-10-26 15:04:02
Original
480 Leute haben es durchsucht

How to Efficiently Find Minimum and Maximum Values in a Nested PHP Array?

Mindest- und Maximalwerte aus dem PHP-Array abrufen

Problem:

Bestimmen Sie anhand eines verschachtelten PHP-Arrays, wie es effizient geht Extrahieren Sie die Mindest- und Höchstwerte für einen bestimmten Schlüssel.

Beispiel:

<code class="php">$array = [
    [
        'id' => '20110209172713',
        'Date' => '2011-02-09',
        'Weight' => '200',
    ],
    [
        'id' => '20110209172747',
        'Date' => '2011-02-09',
        'Weight' => '180',
    ],
    [
        'id' => '20110209172827',
        'Date' => '2011-02-09',
        'Weight' => '175',
    ],
    [
        'id' => '20110211204433',
        'Date' => '2011-02-11',
        'Weight' => '195',
    ],
];</code>
Nach dem Login kopieren

Lösung:

Option 1: Verwenden von array_column() und min()/max()

Diese Methode nutzt die Funktion array_column(), um die „Gewicht“-Werte in ein numerisches Array zu extrahieren. Anschließend werden die Funktionen min() und max() verwendet, um den Minimal- bzw. Maximalwert zu ermitteln.

<code class="php">$weights = array_column($array, 'Weight');
$minValue = min($weights);
$maxValue = max($weights);</code>
Nach dem Login kopieren

Option 2: Verwendung von array_map()

Ähnlich wie Option 1 verwendet diese Methode array_map(), um die „Gewichtung“-Werte zu extrahieren. Es ist jedoch eine benutzerdefinierte Funktion erforderlich, um die Zuordnung durchzuführen.

<code class="php">$weights = array_map(function($item) {
    return $item['Weight'];
}, $array);

$minValue = min($weights);
$maxValue = max($weights);</code>
Nach dem Login kopieren

Option 3 (veraltet): Verwendung verschachtelter Schleifen

Diese Methode wird in ihrer jetzigen Form nicht empfohlen relativ ineffizient, insbesondere bei großen Arrays.

<code class="php">$minValue = INF;
$maxValue = -INF;

foreach ($array as $item) {
    if ($item['Weight'] < $minValue) {
        $minValue = $item['Weight'];
    }

    if ($item['Weight'] > $maxValue) {
        $maxValue = $item['Weight'];
    }
}</code>
Nach dem Login kopieren

Option 4: Verwenden von array_reduce()

Diese Methode ist für bestimmte Szenarien nützlich, in denen Sie zusätzliche Berechnungen durchführen müssen oder Verarbeitung bei der Ermittlung des Minimal- oder Maximalwerts.

<code class="php">$minValue = array_reduce($array, function($min, $item) {
    return min($min, $item['Weight']);
}, PHP_INT_MAX);

$maxValue = array_reduce($array, function($max, $item) {
    return max($max, $item['Weight']);
}, -PHP_INT_MAX);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie finde ich effizient Minimal- und Maximalwerte in einem verschachtelten PHP-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage