php怎么统计数组里相同的数据

来源:站长工具作者:深圳SEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《php怎么统计数组里相同的数据》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《php怎么统计数组里相同的数据》有用,将其分享出去将是对创作者最好的鼓励。

在php的实际开发中,统计数组内相同数据的出现频次是非常常见的需求,比如统计用户投票的选项分布、统计订单中同一商品的购买次数等,php提供了内置函数array_count_values来高效完成这个任务。

php怎么统计数组里相同的数据

array_count_values函数基本用法

array_count_values是php内置的数组处理函数,它的作用是统计数组中所有值出现的次数,返回一个关联数组,键是原数组的值,值是该值出现的次数。

函数的基本语法如下:

<?php
/**
 * 统计数组中所有值出现的次数
 * @param array $array 需要统计的数组,数组的值必须是string或者integer类型
 * @return array 返回统计结果数组,键为原数组的值,值为出现次数
 */
array_count_values(array $array): array
?>

基础使用示例

下面是一个简单的使用示例,统计一个包含重复元素的索引数组的相同数据出现次数:

<?php
// 定义一个包含重复元素的数组
$test_array = [1, 2, 3, 2, 4, 1, 5, 1, 2];
// 使用array_count_values统计相同数据
$count_result = array_count_values($test_array);
// 打印统计结果
print_r($count_result);
?>

上述代码的输出结果如下:

Array
(
    [1] => 3
    [2] => 3
    [3] => 1
    [4] => 1
    [5] => 1
)

可以看到,数字1出现了3次,数字2出现了3次,其他数字各出现1次,统计结果和实际情况一致。

字符串数组的统计示例

array_count_values同样支持字符串类型的数组值,比如统计标签出现的次数:

<?php
// 定义标签数组
$tag_array = ['php', 'java', 'php', 'python', 'java', 'php', 'go'];
// 统计标签出现次数
$tag_count = array_count_values($tag_array);
// 输出结果
print_r($tag_count);
?>

输出结果如下:

Array
(
    [php] => 3
    [java] => 2
    [python] => 1
    [go] => 1
)

使用注意事项

使用array_count_values函数时需要注意以下几点限制:

  • 原数组的值只能是string或者integer类型,如果出现其他类型比如float、array、object等,函数会抛出警告,并且对应的元素不会被统计。
  • 如果原数组的值是float类型,会被转换为integer类型之后再统计,比如1.5会被当作1处理。
  • 统计结果数组的键会保持原数组值的类型,字符串值对应字符串键,整数值对应整数键。

其他统计方式的对比

除了使用array_count_values,也可以通过循环遍历数组手动统计相同数据,示例代码如下:

<?php
$test_array = [1, 2, 3, 2, 4, 1, 5, 1, 2];
$manual_count = [];
foreach ($test_array as $value) {
    if (!isset($manual_count[$value])) {
        $manual_count[$value] = 0;
    }
    $manual_count[$value]++;
}
print_r($manual_count);
?>

这种手动统计的方式灵活性更高,可以处理非string和integer类型的值,但是代码量更多,而array_count_values是内置函数,执行效率更高,在符合类型要求的情况下优先使用内置函数。

实际应用场景

array_count_values常见的应用场景包括:

  • 统计用户提交的表单中重复选项的数量,比如多选的兴趣标签统计。
  • 统计订单数据中同一商品的下单次数,快速计算商品销量。
  • 分析日志数据中重复错误码的出现频次,定位高频问题。

通过array_count_values函数,开发者可以用极少的代码完成数组相同数据的统计工作,大幅提升开发效率。

phparray_count_values数组统计相同数据计数修改时间:2026-06-11 18:27:28

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。