我的问题: 我想要一个工作的数字排序,这就是我得到的:
$mynumber=7915503;
echo substr($mynumber, 0, 3)." Gold ". substr($mynumber, 3, 2)." Silver " . substr($mynumber, 5, 2)." Bronze ";
有了这个号码,它就可以了。 产量:791金55银03青铜
但如果我将数字更改为9,它将输出:9金银铜奖 我想把9号和输出:0金0银9铜
答案 0 :(得分:1)
最有可能是更聪明的解决方案......
<?php
$data = array(7915503, 9, 11, 211, 2211, 32211,332211, 3332211);
foreach( $data as $x ) {
echo $x, ' -> ';
$bronze = substr($x, -2); $x = substr($x, 0, -strlen($bronze));
$silver = substr($x, -2); $x = substr($x, 0, -strlen($silver));
$gold = substr($x, -3);
printf("gold:%d silver:%d bronze:%d\r\n", $gold, $silver, $bronze);
}
打印
7915503 -> gold:791 silver:55 bronze:3
9 -> gold:0 silver:0 bronze:9
11 -> gold:0 silver:0 bronze:11
211 -> gold:0 silver:2 bronze:11
2211 -> gold:0 silver:22 bronze:11
32211 -> gold:3 silver:22 bronze:11
332211 -> gold:33 silver:22 bronze:11
3332211 -> gold:333 silver:22 bronze:11
编辑:doooh,是的,有:
foreach( $data as $x ) {
echo $x, ' -> ';
$bronze = $x % 100;
$silver = ($x / 100 ) % 100;
$gold = ($x / 10000 ) % 1000;
printf("gold:%d silver:%d bronze:%d\r\n", $gold, $silver, $bronze);
}
相同的输出。