I am developing an e-commerce website recently and need to process product prices. Because the price is too long, the last three digits of the price need to be deleted, but the integer part and decimal point must be retained. Therefore, a function needs to be implemented in PHP to achieve this function.
In PHP, you can use regular expressions to match numbers in a string, and use the substr function to intercept part of the string. Therefore, we can write a function that first uses a regular expression to match the numeric part of the string, then intercepts the previous part through the substr function, adds the decimal point, and finally returns the processed string.
The following is a simple implementation:
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; } }
This function receives a price string as a parameter and returns the processed string. First, we define a $pattern variable to match the numeric part. This regular expression matches one or more numbers, which can contain a decimal point and zero or more digits.
Next, we use the preg_match function to find matching numbers in the price string. This function returns an array where the first element is the matched string.
If no matching number is found, we return the original string directly. If there is a matching number, we use the substr function to intercept the previous part, excluding the last three numbers. Then, we concatenate the intercepted string with the last three numbers in the original string and return the result.
Here is a usage example:
$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 this example, we use three different price strings to test this function. The first string has a decimal point and four digits, the second string has a decimal point and four zeros, and the third string has only an integer part.
After testing, we found that this function can correctly remove the last three digits of the price string while retaining the integer part and decimal point. This function can also handle integers without decimal points, just return the original string.
In summary, writing a function using PHP to remove the last three numbers from a string simply uses regular expressions and the substr function. If you need to perform similar processing on other strings, you can also refer to this method.
The above is the detailed content of How to delete the last three digits in php. For more information, please follow other related articles on the PHP Chinese website!