Number suffix
Adds a suffix to a given number (1st, 2nd, 3rd, ...)
// Also, increasing the range above the condition statements
// increases efficiency. That's almost 20% of the numbers
// between 0 and 100 that get to end early.
function number_suffix($number){
// Validate and translate our input
if ( is_numeric($number)){
// Get the last two digits (only once)
$n = $number % 100;
}
else {
// If the last two characters are numbers
if ( preg_match( '/[0-9]?[0-9]$/', $number, $matches )){
// Return the last one or two digits
$n = array_pop($matches);
}
else {
// Return the string, we can add a suffix to it
return $number;
}
}
// Skip the switch for as many numbers as possible.
if ( $n > 3 && $n < 21 )
return $number . 'th';
// Determine the suffix for numbers ending in 1, 2 or 3, otherwise add a 'th'
switch ( $n % 10 ){
case '1': return $number . 'st';
case '2': return $number . 'nd';
case '3': return $number . 'rd';
default: return $number . 'th';
}
}
//Example:
print number_suffix(3);
//returns: 3rd
print number_suffix(51);
//returns: 51st
print number_suffix(94859);
//returns: 94859th
Url: http://www.jonasjohn.de/snippets/php/number-suffix.htm
Language: PHP | User: ShareMySnippets | Created: Oct 16, 2013