我正在尝试根据数组中的另一个值对数组的值进行计数。
这是一个示例,带有以下数组:
Array
(
[0] => Array
(
[user] => 53
[grade] => A
)
[1] => Array
(
[user] => 40
[grade] => A
)
[2] => Array
(
[user] => 53
[grade] => A
)
[3] => Array
(
[user] => 53
[grade] => B
)
[4] => Array
(
[user] => 53
[grade] => C
)
[5] => Array
(
[user] => 52
[grade] => A
)
)
我需要一种为特定用户计算所有特定成绩的方法。
我的第一个想法是array_count_values()
,它只能为我提供特定等级的总金额,而不是基于用户。除了这个想法,我再也想不出来了,并且很难找到一个很好的搜索词来尝试找到解决方案。
我需要说“用户X的Z等级为Y的数量”(用户 53 的等级为 2 A )>
如何从阵列中提取所需的信息?
答案 0 :(得分:0)
我想避免解决方案的大量循环,因为我的生产数据可能会包含数十个用户,每个用户的等级都不同。
这是我想出的:
浏览一次我所有的结果,然后将它们分类为键,键是用户ID,内容是该用户每个年级的计数(在评论中提到了deceze之类的排序)
define()
现在,我可以通过执行以下操作来访问每个用户的数目:$grouped = [];
foreach($results as $result) {
$grouped[$result['user']][$result['grade']]++;
}
,所以我只是将所有信息都转换为适合我所需应用程序的正确格式:
$grouped[USERID][GRADE]