Adds a suffix to a given number (1st, 2nd, 3rd, ...)

3 views
Skip to first unread message

whoami

unread,
Jul 8, 2008, 11:29:56 PM7/8/08
to phpguru

// 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';
}
}



Note: All Members are requested to post their views and all about PHP
code and snippets.
Reply all
Reply to author
Forward
0 new messages