Heim > Artikel > Backend-Entwicklung > Wie finde ich den nächstgelegenen Wert in einem Array?
Nächste Werteübereinstimmung in einem Array
Bei einem Array von Werten und einem Zielwert besteht eine häufige Anforderung darin, den am nächsten passenden Wert abzurufen im Array. Dies kann sich als besonders nützlich erweisen, wenn es sich um ungenaue Daten handelt oder wenn keine genaue Übereinstimmung verfügbar ist.
Lösung:
Um den nächstmöglichen Übereinstimmungswert zu ermitteln, wird ein iterativer Suchalgorithmus verwendet eingesetzt werden kann. Hier ist eine PHP-Funktion, die diesen Ansatz implementiert:
function getClosest($search, $arr) { $closest = null; foreach ($arr as $item) { if ($closest === null || abs($search - $closest) > abs($item - $search)) { $closest = $item; } } return $closest; }
Diese Funktion vergleicht iterativ den Zielwert mit jedem Element im Array. Es verwaltet eine $closest-Variable, um den gefundenen Wert mit der größten Übereinstimmung zu verfolgen. Bei jedem Vergleich wird die absolute Differenz zwischen dem Ziel und dem aktuellen Array-Element berechnet. Wenn die Differenz kleiner ist als die zuvor aufgezeichnete Differenz, wird die $nächste Variable aktualisiert.
Beispiel:
Verwendung des bereitgestellten Beispielarrays:
$array = [0, 5, 10, 11, 12, 20];
Die folgenden Suchvorgänge können durchgeführt werden:
Durch die Iteration durch das Array und die Auswertung jedes Elements findet dieser Algorithmus effizient den Wert, der dem Ziel am nächsten kommt.
Das obige ist der detaillierte Inhalt vonWie finde ich den nächstgelegenen Wert in einem Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!