我是php的初学者
如何计算“得分”的频率并将其按得分的降序排列在表格中?
array = 15,17,17
+-------------+-----------+
| Score | Frequency |
+-------------+-----------+
| 17 | 2 |
| 15 | 1 |
+-------------+-----------+
我有一个多星期的时间遇到此问题,我已经尝试过array_count_values,但是它将所有值打印在一行中。
答案 0 :(得分:1)
您应该可以像下面一样使用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/>";
}
答案 1 :(得分:1)
我认为使用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";