我有一个元素数组,每个元素都有 1 或 0。我想遍历每个元素并计算哪些元素有最多的 1。
所以我有三个字段:
id、question 和 yesno
值如下所示:
1,1,0
1,2,0
1,3,1
1,4,0
1,5,1
2,1,0
2,2,1
2,3,1
2,4,0
2,5,1
3,1,0
3,2,1
3,3,1
3,4,0
3,5,1
这就是它的要点。现在,我想计算中间列中的哪些元素在第三列中有最多的 1。用另一种方式来解释它。我想遍历 for 循环并计算中间数字为“1”的次数。稍后,我将进行排序,找出哪个最多。我如何进行这种类型的迭代?
如有不解请追问!我自己也很困惑……!
最佳答案
如果这是在数据库中,您可以使用此 SQL:
SELECT question_id, SUM(value = 1) AS value
FROM mytable
GROUP BY question_id
ORDER BY value DESC
LIMIT 1;
SUM(value = 1)
计算每个yesno
值等于 1 的次数;- 使用
GROUP BY question_id
每个问题计算 #1 - 然后根据出现次数降序排列(第一个是最高的)
- 取第一项。
关于php - 如何在 for 循环中跟踪基数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038995/