簡體   English   中英

如何在for循環中跟蹤基數?

[英]How do I track cardinality in a for loop?

在此處輸入圖片說明 我有一個元素數組,每個元素都有一個1或0。我想遍歷每個元素並計算哪個元素的位數最大。

所以我有三個領域:

id,問題和是

值如下所示:

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;
  1. SUM(value = 1)計算每個yesno值等於1的出現次數;
  2. 使用GROUP BY question_id ,每個問題計算為#1
  3. 然后根據出現的次數以降序排列(第一個是最高的)
  4. 拿第一項。

如果您仍然更喜歡使用PHP:

$counts=array();
foreach($arr as $v) @$counts[$v['movie_id']]+=$v['value'];

我們創建一個空數組,然后在該數組中使用鍵$v['movie_id']$v['value']到項目。 如果該密鑰尚不存在,則將使用值0創建該密鑰,並根據您的PHP設置顯示提示。 放置在PHP命令前面的@符號可禁止在該行中生成通知和警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM