📜  groupBy 计数 - PHP (1)

📅  最后修改于: 2023-12-03 15:15:26.722000             🧑  作者: Mango

GroupBy计数 - PHP

在PHP中,我们可以使用groupBy()函数将一个数组按照指定的条件分组,并且用count()函数计算每个分组中元素的个数。

语法
array_count_values(array $array): array
参数
  • $array:要分组并计算的数组
返回值

返回一个关联数组,其中键是原始数组中的值,而值是该值在原始数组中出现的次数。

示例
$colors = array("red", "green", "blue", "yellow", "red", "green");
$result = array_count_values($colors);
print_r($result);

输出:

Array
(
    [red] => 2
    [green] => 2
    [blue] => 1
    [yellow] => 1
)

在上面的示例中,我们使用array_count_values()函数计算了$colors数组中每个元素的出现次数。其中,redgreen都出现了两次,而blueyellow分别只出现了一次。

与groupBy()函数的结合使用

我们可以将groupBy()函数与array_count_values()函数结合使用,实现按照指定条件分组并计算个数的功能。

例如,我们有一个学生数组,其中每个学生都有一个班级属性,我们可以按照班级分组,并统计每个班级的学生人数,代码如下:

$students = array(
    array('name' => 'Alice', 'class' => '1st'),
    array('name' => 'Bob', 'class' => '2nd'),
    array('name' => 'Charlie', 'class' => '1st'),
    array('name' => 'David', 'class' => '2nd'),
    array('name' => 'Emily', 'class' => '3rd'),
    array('name' => 'Frank', 'class' => '3rd')
);

$result = array_count_values(array_column($students, 'class'));
print_r($result);

输出:

Array
(
    [1st] => 2
    [2nd] => 2
    [3rd] => 2
)

在上面的代码中,我们使用了array_column()函数将$students数组中的class属性提取出来,并且将提取出来的属性作为参数传递给了array_count_values()函数。这样,我们就按照班级分组并计算了每个班级的学生人数。