求一个更精简的php王者荣耀等级转换文字

@Ta 2021-11-07发布,2021-11-07修改 1611点击
image.png

目前,big代表 此段位有多少段,small代表每个段要多少个星,
例如 
【青铜3,1星】-> 【青铜3,2星】->【青铜3,1星】->【青铜2,1星】->【青铜2,2星】->....【青铜1,3星】->【白银3,1星】->【白银3,2星】->
<?php

namespace app\wz\lib;

class WzGrade
{

    public static $grade = [
        "青铜" => [
            'big' => 3,
            'small' => 3,
        ],
        "白银" => [
            'big' => 3,
            'small' => 3
        ],
        "黄金" => [
            'big' => 4,
            'small' => 4
        ],
        "铂金" => [
            'big' => 5,
            'small' => 5
        ],
        "钻石" => [
            'big' => 5,
            'small' => 5
        ],
        "星耀" => [
            'big' => 5,
            'small' => 5
        ],
        "王者" => [
            'big' => 1,
            'small' => 100
        ]
    ];


    public static function convertRankToString($num){
        $_num=0;
        foreach(self::$grade as $name=>$value ){
            for($big =$value['big'];$big>=1;$big--){
                //每个段位,从5-1,倒叙
                for($small =1;$small<= $value['small'];$small++){
                    if($num==$_num){
                        $_str='【'.$name.$big.'】'.$small;
								if($small>5){
                                    $_str.=`颗星`;
								}else{
                                    for($i=0;$i<$small;$i++){
                                        if($i==0){
                                            $_str.="颗";
										}
                                        $_str.="★";
									}
								}
								if($name=='王者'){
                                    $_str=$name.$small.'颗★';
                                }
								return $_str;
							}
                    $_num++;
                }
            }
        }
    }

}
回复列表(1|显示机器人聊天)
添加新回复
回复需要登录