whoami
unread,Jul 8, 2008, 11:29:56 PM7/8/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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.