我有值的数组:
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星
答案 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
)
)