我正在尝试汇总数据库表中每个单独数字的所有出现,并将它们返回到关联数组中。
例如,该表可能包含以下条目: 1 3 4 2 1 2 1 1 4 3 3 4 2
总计时,这将是 1 = 4、2 = 3、3 = 3、4 = 3。
理想情况下,这将作为具有“数字”和“总计”键的数组返回。
您需要的 SQL 代码是:SELECT num AS number, COUNT(num) AS occurrences FROM yourtable GROUP BY num
有了答案,您将在每一行中获得第一个字段的 num 和第二个字段的出现次数。然后你可以创建一个数组并让它只是循环通过 sql 响应
获取数组将类似于(未经测试的代码,只是一个指南):
$myArray = array();
while($row = mysql_fetch_array( $data ))
{
$myArray[$row["num"]] = $row["occurrences"];
}
一种选择是获取结果并使用array_count_values
:
$arr = array_count_values($arr);
在 SQL 查询中,您可以使用COUNT
and执行相同的操作GROUP BY
:
SELECT number, COUNT(*) as total FROM mytable GROUP BY number
最后一个会返回两列对应的数据:
------------------
| number | total |
------------------
| 1 | 4 |
------------------
| 2 | 3 |
------------------
...