PHP: how to add a thousands separator

posted on by - 59 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.

If you liked this post and want to be updated on useful WordPress code snippets, as well as our latest theme releases, consider subscribing to our newsletter.

No unwanted spam. We promise.