Quick actions

cmd+k|ctrl+k

Navigation

Languages

Legible numbers as Twitter uses

Snippet info

Language

Php

Visibility

public

Author

mertskaplan

Created

2016-12-25T06:13:53Z

Updated

2021-04-28T19:35:54.37139Z

<?php

function legibleNumb($numb, $lang = 'en') {
    if ($lang == 'tr') { // Usage with commas in Turkish
        if ($numb >= 1000000) { // million
            if (strstr(round(number_format($numb,0,',','.'),1),'.')) {
                $legibleNumb = number_format(round(number_format($numb,0,',','.'),1),1,',','.') . ' Mn';
            } else {
                $legibleNumb = round(number_format($numb,0,',','.'),1) . ' Mn';
            }
        } elseif ($numb >= 100000 && $numb < 1000000) { // One hundred thousand
            $legibleNumb = round(number_format($numb,0,',','.'),0) . ' B';
        } elseif ($numb >= 10000 && $numb < 100000) { // Ten thousand
            if (strstr(round(number_format($numb,0,',','.'),1),'.')) {
                $legibleNumb = number_format(round(number_format($numb,0,',','.'),1),1,',','.') . ' B';
            } else {
                $legibleNumb = round(number_format($numb,0,',','.'),1) . ' B';
            }
        } else {
            $legibleNumb = number_format($numb,0,',','.');
        }
    } else { // Dotted usage in English
        if ($numb >= 1000000) { // Million
            $legibleNumb = round(number_format($numb,0,',','.'),1) . ' M';
        } elseif ($numb >= 100000 && $numb < 1000000) { // One hundred thousand
            $legibleNumb = round(number_format($numb,0,',','.'),0) . ' K';
        } elseif ($numb >= 10000 && $numb < 100000) { // Ten thousand
            $legibleNumb = round(number_format($numb,0,',','.'),1) . ' K';
        } else {
            $legibleNumb = number_format($numb,0,',','.');
        }
    }
    return $legibleNumb;
}

/* Examples */

echo legibleNumb(9999999,'en') ."\n";
echo legibleNumb(9999999,'tr') ."\n\n";

echo legibleNumb(54669,'en') ."\n";
echo legibleNumb(54669,'tr') ."\n\n";

echo legibleNumb(5466,'en') ."\n";
echo legibleNumb(5466,'tr');
INFO