排序编号:金,银,铜

时间:2016-03-06 00:23:44

标签: php html

我的问题: 我想要一个工作的数字排序,这就是我得到的:

$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铜

1 个答案:

答案 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);
}

相同的输出。