我有一个从 0 到 100 的数组。
我需要为每个附加正确的后缀(st、nd、rd、th),然后按照最后一条评论 IE “1st、2nd、3rd、4th、5th(等到最后一个元素)”中的说明显示它。<- 以“.”结尾 而不是 ", "。
一直在寻找类似风格的问题仍然无法得出正确的解决方案。
<?php
$winners = range(0, 100); // scaleable winners of /r/aww contest
// print_r($winners); // test above line
$last = count($winners)-1;
while (!$mywinner){ // ensure my Dog does not get 0th place
$mywinner = array_rand($winners); // randomly select my Dog's winning spot
}
echo $mywinner . '<br>'; // check my Dog's winning place to verify it's not being echoed below; comment this line upon completion
unset($winners[$mywinner]); // remove my Dog from list of other winners
// print out all winners except my dog
foreach ($winners as $place){ // run foreach loops on every winner to attach suffix
switch ($place){ //use switch to set what suffix to attach to winner's place
case 11: // make sure 11th place gets th suffix, not st
$place .= "th ";
break;
case 12:// make sure 12th place gets th suffix, not nd
$place .= "th ";
break;
case 13:// make sure 13th place gets th suffix, not 3rd
$place .= "th ";
break;
case substr($place, -1) == 1: // check places ending in 1 at append 'st' suffix
$place .= "st ";
break;
case substr($place, -1) == 2:// check places ending in 2 at append 'nd' suffix
$place .= "nd ";
break;
case substr($place, -1) == 3:// check places ending in 3 at append 'rd' suffix
$place .= "rd ";
break;
default: // default suffix for every other place
$place .= "th ";
break;
}
if ($place != 0){
echo (implode(", ", explode(" ", $place)));// echo as format "1st, 2nd, 3rd, 4th, (etc to end), 100th." end with period (need fixing)
}
}
?>
我是如此接近。我在这里俯瞰什么?