0

我正在尝试汇总数据库表中每个单独数字的所有出现,并将它们返回到关联数组中。

例如,该表可能包含以下条目: 1 3 4 2 1 2 1 1 4 3 3 4 2

总计时,这将是 1 = 4、2 = 3、3 = 3、4 = 3。

理想情况下,这将作为具有“数字”和“总计”键的数组返回。

4

2 回答 2

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"];
}
于 2012-06-03T22:54:33.830 回答
0

一种选择是获取结果并使用array_count_values

$arr = array_count_values($arr);

在 SQL 查询中,您可以使用COUNTand执行相同的操作GROUP BY

SELECT number, COUNT(*) as total FROM mytable GROUP BY number

最后一个会返回两列对应的数据:

------------------
| number | total |
------------------
| 1      | 4     |
------------------
| 2      | 3     |
------------------
...
于 2012-06-03T22:52:06.263 回答