序数のルールは1の位が 1 であれば 1st、2 であれば 2nd、3 であれば 3rd となり、それ以外は th をつけます。
ただし、10の位が 1 の場合はすべて th がつきます。
特定の桁を取得する場合は剰余(10で割った余り)を利用すると簡単です。
以下のコードは 1〜30 の数字を序数に変換して表示するサンプルです。
<?php for($i = 1; $i <= 30; $i++){ echo ordinalNumber($i) . "\n"; } function ordinalNumber( $num ){ $n = $num % 10; $t = floor($num / 10) % 10; if($t === 1){ return $num . "th"; } else { switch($n) { case 1: return $num . "st"; case 2: return $num . "nd"; case 3: return $num . "rd"; default: return $num . "th"; } } }
Similar Posts:
- [PHP]switch()は通常では厳密に型を比較しない
- [PHP]HSV(HSB)をRGBに変換する
- [PHP]JSON+cURLで時刻同期型ワンタイムパスワードによる認証
- [PHP]Fatal Error発生時にログを作成する
- [PHP]逆ポーランド記法への変換と計算
- [PHP]GDでアンチエイリアスのかかった綺麗な楕円を描く
- [HTML5+JS+Canvas, PHP]アナログ時計の作り方
- [PHP]クラスメソッドをキャメルケース、スネークケースのどちらでも呼び出せるようにする