PHP: how to add a thousands separator

posted on by - 196 views

Coding could be stressful, especially when we struggle to find ways to do apparently simple things. When I started being a web developer, sometime in the 10’s, I remember working on an ecommerce website made from scratch.

That was quite a challenge, won’t deny it – and I specifically remember having troubles with prices. Since it was a real estate website, houses had really high prices, and they were just… ugly. Just imagine going through a web page and seeing all those €750000 and €1250000 and €2450000, so many numbers that you need to focus for a second to understand if that’s a million or just 125 thousands, or even twelve millions.

So, I needed a way to add a thousands separator in PHP. Eventually I found it, and it was quite simple: the only thing needed was a specific PHP function, which is…

Using number_format() to add the thousands separator

Yes, that one. number_format() is what we need to make things easy.

Now, let’s say we have a very high number, something like five millions and something.

$price = "5325297";

Right? Okay: it’s ugly, as expected. Let’s see how to make it prettier.

$price = number_format( $price, 2, '.', ',' );

Here we go: now if we echo $price, the output of what we just did should be 5,325,297.00. What we did will also add the decimal separator, which in this case is a dot – while thousands are delimited by a comma. If we want to invert things, well, it’s easy as well:

$price = number_format( $price, 2, ',', '.' );

Now the thousands are delimited by dots, and decimals by a comma.
If we’re 100% sure we will only have round numbers, we can also remove the decimals. The only thing to do here is making that 2 become 0.

$price = number_format( $price, 0, ',', '.' );

That’s it. We just made prices really pretty just by using a PHP function.
You buyers will be so happy now. Maybe.