使用array_count_values可直接统计一维数组中各元素出现次数,适用于标签频次等场景;结合array_filter与count可实现条件筛选后计数,如统计高分人数;利用array_unique去重后配合count可统计独立值数量,如独立IP访问数。

在PHP开发中,数组是处理数据的核心工具之一。当我们需要对一组数据进行统计分析时,合理使用PHP内置的数组函数可以大幅提升效率和代码可读性。通过组合多个数组函数,我们可以轻松实现元素计数、频率统计、去重汇总等常见需求。
使用 array_count_values 统计元素出现次数
这是最直接的统计函数,适用于一维索引数组,能返回每个值出现的次数。
- 适用场景:统计用户选择、日志类型、标签频次等
- 基本用法:传入一维数组,返回关联数组,键为原值,值为出现次数
例如,统计学生选课情况:
$courses = ['Math', 'English', 'Math', 'Physics', 'English', 'Math'];
$count = array_count_values($courses);
// 结果:['Math'=>3, 'English'=>2, 'Physics'=>1]
结合 array_filter 和 count 进行条件统计
当需要按特定条件筛选后再统计数量时,这两个函数配合使用非常高效。
立即学习“PHP免费学习笔记(深入)”;
网奇.NET网络商城系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net的主机空间即可使用。系统特色功能:1、同时支持Access和SqlServer数据库;2、支持多语言、多模板3、可定制缺货处理功能4、支持附件销售功能5、支持会员组批发功能6、提供页面设计API函数7、支持预付款功能8、配送价格分地区按数学公式计算9、商品支持多类别,可
- array_filter:根据回调函数过滤数组元素
- count:获取过滤后数组的元素总数
比如统计成绩大于等于80分的学生人数:
$scores = [75, 82, 90, 67, 88, 73];
$high_scorers = array_filter($scores, function($score) {
return $score >= 80;
});
echo count($high_scorers); // 输出 3
使用 array_unique 和 array_diff 辅助去重与对比统计
在复杂统计中,常需先去重或比较差异再进行汇总。
- array_unique:去除重复值,保留唯一元素
- array_diff:找出两个数组间的差异项,可用于排除或增量统计
例如统计独立访问IP数:
$ips = ['192.168.1.1', '192.168.1.2', '192.168.1.1', '192.168.1.3'];
$unique_ips = array_unique($ips);
echo count($unique_ips); // 输出 3
基本上就这些常用方法。掌握 array_count_values、array_filter、count、array_unique 等函数的组合使用,就能应对大多数数据统计场景。关键是理解每个函数的作用边界,并根据实际数据结构选择合适的组合方式。不复杂但容易忽略细节,比如多维数组需先提取字段再统计。










