PHP数组到星星

时间:2017-04-07 13:42:09

标签: php

我有值的数组: 7.09, 5.63 , 5.35 , ...

我将它们四舍五入为 0.5

round(x * 2) / 2;

现在我有7, 6, 5.5

我怎样才能制作这些星星?最大的星星5.所以我需要制作5星=最高的数组值,然后是什么?对不起,我的英语不好。我不知道该怎么做。

7 - 5星

6 - 4.5星

5.5 - 4星

2 个答案:

答案 0 :(得分:1)

如果您只想获得第一个整数的平均值,只需要进行5次转换(使用最大值获取最大值= 5星):

max = 7.09
a = 7.09
b = 5.63

starsA = (a/max)* 5
starsB = (b/max)* 5

然后对这些值进行舍入以使你的星星达到10分制。

答案 1 :(得分:1)

$mArray = array(8,2,5,1);


$biggestNumber = max($mArray);


foreach($mArray as $index => $star){
    $percent =  $star / $biggestNumber * 100;
    $mFinalArray[$index]['number'] = $star;
    $mFinalArray[$index]['stars'] = $percent / 100 * 5;
}

print_r($mFinalArray);

输出:

Array
(
    [0] => Array
        (
            [number] => 8
            [stars] => 5
        )

    [1] => Array
        (
            [number] => 2
            [stars] => 1.25
        )

    [2] => Array
        (
            [number] => 5
            [stars] => 3.125
        )

    [3] => Array
        (
            [number] => 1
            [stars] => 0.625
        )

)

此外,如果你想要圆形数字,你可以改变

的最后一行

$mFinalArray[$index]['stars'] = $percent / 100 * 5;

$mFinalArray[$index]['stars'] = round($percent / 100 * 5);

使用round输出示例:

Array
(
    [0] => Array
        (
            [number] => 8
            [stars] => 5
        )

    [1] => Array
        (
            [number] => 2
            [stars] => 1
        )

    [2] => Array
        (
            [number] => 5
            [stars] => 3
        )

    [3] => Array
        (
            [number] => 1
            [stars] => 1
        )

)