如何计算数组的频率(PHP)

问题描述 投票:0回答:2

我是php的初学者

如何计算得分的频率并按照得分的降序将其放在表格中?

array = 15,17,17

+-------------+-----------+
|    Score    | Frequency |
+-------------+-----------+
| 17          | 2         |
| 15          | 1         |
+-------------+-----------+

我有一个多星期的这个问题,我已经尝试过array_count_values,但它会在一行中打印所有值。

php
2个回答
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";

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/>";
    }
© www.soinside.com 2019 - 2024. All rights reserved.