我正在尝试将数据库表中每个单独数字的所有匹配项合计,并以关联数组的形式返回它们。
例如,该表格可能包含以下条目:1 3 4 2 1 2 1 1 4 3 3 4 2
总计时,这将是1 = 4,2 = 3,3 = 3,4 = 3.
理想情况下,这将作为数组返回,其键为“number”和“total”。
答案 0 :(得分: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"];
}
答案 1 :(得分:0)
一种选择是获取结果并使用array_count_values
:
$arr = array_count_values($arr);
在SQL查询中,您可以对COUNT
和GROUP BY
执行相同操作:
SELECT number, COUNT(*) as total FROM mytable GROUP BY number
最后一个将返回两列相应的数据:
------------------
| number | total |
------------------
| 1 | 4 |
------------------
| 2 | 3 |
------------------
...