Heim  >  Artikel  >  Backend-Entwicklung  >  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
Barbara StreisandOriginal
2024-10-26 15:04:02399Durchsuche

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>

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>

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>

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>

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>

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!

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