在 PHP 中显示带有序号后缀的数字

2022-08-30 06:34:39

我想按如下方式显示数字

  • 1 作为 1st,
  • 2 作为第 2,
  • ...,
  • 150作为第150位。

我应该如何为代码中的每个数字找到正确的序号后缀(st、nd、rd 或 th)?


答案 1

来自维基百科

$ends = array('th','st','nd','rd','th','th','th','th','th','th');
if (($number %100) >= 11 && ($number%100) <= 13)
   $abbreviation = $number. 'th';
else
   $abbreviation = $number. $ends[$number % 10];

您要写入的数字在哪里。适用于任何自然数。$number

作为一项功能:

function ordinal($number) {
    $ends = array('th','st','nd','rd','th','th','th','th','th','th');
    if ((($number % 100) >= 11) && (($number%100) <= 13))
        return $number. 'th';
    else
        return $number. $ends[$number % 10];
}
//Example Usage
echo ordinal(100);

答案 2

PHP为此提供了内置功能。它甚至可以处理国际化!

$locale = 'en_US';
$nf = new NumberFormatter($locale, NumberFormatter::ORDINAL);
echo $nf->format($number);

请注意,此功能仅在 PHP 5.3.0 及更高版本中可用。


推荐