📅  最后修改于: 2023-12-03 15:15:26.722000             🧑  作者: Mango
在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
数组中每个元素的出现次数。其中,red
和green
都出现了两次,而blue
和yellow
分别只出现了一次。
我们可以将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()
函数。这样,我们就按照班级分组并计算了每个班级的学生人数。