Often numbers are to be written with a proper suffix, like 1st, 2nd, 3rd, 15th, 21st and so on.
So here is a quick function to do the same for a number.
Technique 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| /* This function will add st, nd, rd, th to the end of numbers */ function ordinal( $i ) { $l = substr ( $i ,-1); $s = substr ( $i ,-2,-1); return (( $l ==1&& $s ==1)||( $l ==2&& $s ==1)||( $l ==3&& $s ==1)|| $l >3|| $l ==0? 'th' :( $l ==3? 'rd' :( $l ==2? 'nd' : 'st' ))); } /* Example usage */ for ( $i = 0; $i < 100; $i ++) { echo $i . ordinal( $i ). '<br />' ; } |
Technique 2
Php 5.3+ has the NumberFormatter class from the intl pecl package, which can be used to do the same thing in a much better way by taking into account localisation.
To install intl on ubuntu type the following at the terminal
$ sudo apt-get install php5-intl
Example
1
2
| $nf = new NumberFormatter( 'en_US' , NumberFormatter::ORDINAL); print $nf ->format(123); // prints 123rd |
0 comments:
Post a Comment