我是php的初学者
如何计算得分的频率并按照得分的降序将其放在表格中?
array = 15,17,17
+-------------+-----------+
| Score | Frequency |
+-------------+-----------+
| 17 | 2 |
| 15 | 1 |
+-------------+-----------+
我有一个多星期的这个问题,我已经尝试过array_count_values,但它会在一行中打印所有值。
我认为这样的事情,使用krsort()而不是arsort(),会得到所需的输出:
<?php
$array = [15, 17, 17];
$scores = array_count_values($array);
krsort($scores); // This will order it by score descending.
echo "<table>\n";
echo "<tr><th>Score</th><th>Frequency</th></tr>\n";
foreach ($scores as $value => $count) {
echo "<tr><td>" . $value . "</td><td>" . $count . "</td></tr>\n";
}
echo "</table>\n";
您应该能够像array_count_values()
一样实现它,就像我在下面一样。
<?php
$array = [15, 17, 17];
print_r(array_count_values($array));
这将输出以下内容 - 值和计数。
Array
(
[15] => 1
[17] => 2
)
对于您的情况,更好的用例是(如果以HTML格式输出):
<?php
$array = [15, 17, 17];
$scores = array_count_values($array);
krsort($scores); // Order array by score descending.
foreach ($scores as $value => $count) {
echo $value . ": " . $count . "<br/>";
}