Le format court des chiffres, ça vous tente de savoir comment le faire avec PHP ? Convertir par exemple 1000 en 1K, 1000000 en 1M et 1000000000 en 1B ? Apprenons à le faire rapidement dans la suite de ce billet.

Si les multinationales comme Google, Facebook favorisent ce formatage dans leurs services, c’est surtout par sa facilité d’être lit et compris, mais aussi sa facilité d’être affiché. 1.5K est plus classe que 1532, n’est-ce pas ?

LongShort
10001K
10000001M
10000000001B
10000000000001T

Je veux me servir d’une librairie dans ce tutoriel, si seulement vous voulez savoir comment  cela marche en interne, c’est par là (ou ) que vous trouverez ce qui vous va.

Nous allons nous servir de numeral.php, une librairie PHP inspirée de numeral.js

Si vous êtes ensemble avec moi et prêt, alors :

  1. Créer un dossier vide et ouvrez la ligne de commande à partir du dossier et tapez la commande (si vous êtes déjà dans un projet, tapez directement la commande ;).
    composer require stillat/numeral.php

    Cela a pour effet d’installer numeral.php comme dépendance via composer
  2. Créer un fichier index.php qui va nous servir de teste toujours dans la racine du projet et mettez ce bout de code
    <?php
    require_once __DIR__.'/vendor/autoload.php';
    
    $formatter = new Stillat\Numeral\Numeral;
    $formatter->setLanguageManager(new Stillat\Numeral\Languages\LanguageManager);
    
    $formatter->format(1532, '0a,0'); //Affiche 1.5K
    $formatter->format(1456852, '0a,0'); //Affiche 1.5M
    $formatter->format(1456852, '0a,00') //Affiche 1.46M

Allez, un helper rapide à utiliser tout au long d’un projet

<?php
require_once __DIR__.'/vendor/autoload.php';

function short_number($number, $number_of_zero='0')
{
   $formatter = new Stillat\Numeral\Numeral;
   $formatter->setLanguageManager(new Stillat\Numeral\Languages\LanguageManager);
   $format = '0a';
   if(($number_of_zero = strlen((string)$number_of_zero)) > 1){
      $format = '0a.'. $number_of_zero;
   }
   return $formatter->format($number, $format);
}

echo short_number(1000, 00); //Affiche 1.0K

On s’arrêtes donc là pour aujourd’hui, n’oubliez pas de partager l’astuce avec vos amis !

Vous trouverez plus d’informations sur la librairie dans sa documentation.

Catégorisé: