Ich entwickle derzeit eine E-Commerce-Website und muss Produktpreise verarbeiten. Da der Preis zu lang ist, müssen die letzten drei Ziffern des Preises gelöscht werden, der ganzzahlige Teil und der Dezimalpunkt müssen jedoch beibehalten werden. Daher muss eine Funktion in PHP implementiert werden, um diese Funktion zu erreichen.
In PHP können Sie reguläre Ausdrücke verwenden, um Zahlen in einer Zeichenfolge abzugleichen, und die Funktion substr verwenden, um einen Teil der Zeichenfolge abzufangen. Daher können wir eine Funktion schreiben, die zunächst einen regulären Ausdruck verwendet, um den numerischen Teil der Zeichenfolge abzugleichen, dann den vorherigen Teil über die Substr-Funktion abfängt, den Dezimalpunkt hinzufügt und schließlich die verarbeitete Zeichenfolge zurückgibt.
Hier ist eine einfache Implementierung:
function removeLastThreeDigits($price) { $pattern = '/\d+\.?\d*/'; preg_match($pattern, $price, $matches); if(count($matches) > 0) { $priceWithoutDecimal = substr($matches[0], 0, -3); return $priceWithoutDecimal . substr($matches[0], -3); } else { return $price; } }
Diese Funktion empfängt einen Preisstring als Parameter und gibt den verarbeiteten String zurück. Zuerst definieren wir eine $pattern-Variable, die dem numerischen Teil entspricht. Dieser reguläre Ausdruck entspricht einer oder mehreren Zahlen, die einen Dezimalpunkt und null oder mehr Ziffern enthalten können.
Als nächstes verwenden wir die Funktion preg_match, um passende Zahlen in der Preiszeichenfolge zu finden. Diese Funktion gibt ein Array zurück, bei dem das erste Element die übereinstimmende Zeichenfolge ist.
Wenn keine passende Nummer gefunden wird, geben wir direkt die Originalzeichenfolge zurück. Wenn es eine übereinstimmende Zahl gibt, verwenden wir die Funktion substr, um den vorherigen Teil abzufangen, mit Ausnahme der letzten drei Zahlen. Dann verketten wir die abgefangene Zeichenfolge mit den letzten drei Zahlen in der ursprünglichen Zeichenfolge und geben das Ergebnis zurück.
Hier ist ein Anwendungsbeispiel:
$price = "25.9900"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出25.99 $price = "35.0000"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出35.00 $price = "50"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出50
In diesem Beispiel verwenden wir drei verschiedene Preiszeichenfolgen, um diese Funktion zu testen. Die erste Zeichenfolge hat einen Dezimalpunkt und vier Ziffern, die zweite Zeichenfolge hat einen Dezimalpunkt und vier Nullen und die dritte Zeichenfolge hat nur einen ganzzahligen Teil.
Nach dem Testen haben wir festgestellt, dass diese Funktion die letzten drei Ziffern der Preiszeichenfolge korrekt entfernen kann, während der ganzzahlige Teil und der Dezimalpunkt erhalten bleiben. Diese Funktion kann auch ganze Zahlen ohne Dezimalpunkte verarbeiten, gibt einfach die ursprüngliche Zeichenfolge zurück.
Zusammenfassend lässt sich sagen, dass das Schreiben einer Funktion zum Entfernen der letzten drei Zahlen aus einer Zeichenfolge mit PHP lediglich eine Frage der Verwendung regulärer Ausdrücke und der Substr-Funktion ist. Wenn Sie eine ähnliche Verarbeitung für andere Zeichenfolgen durchführen müssen, können Sie auch auf diese Methode zurückgreifen.
Das obige ist der detaillierte Inhalt vonSo löschen Sie die letzten drei Ziffern in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!