ZetCode

PHP array_count_values 函数

最后修改于 2025 年 3 月 13 日

PHP 的 array_count_values 函数用于计算数组中值的出现次数。它返回一个带有值计数的关联数组。

基本定义

array_count_values 计算每个值在数组中出现的次数。结果是一个数组,其中键是原始值。

语法:array_count_values(array $array): array。值必须是字符串或整数。其他类型将触发警告并被跳过。

计算字符串值

此示例演示了如何计算数组中字符串值的出现次数。

string_count.php
<?php

$colors = ["red", "blue", "green", "blue", "red", "red"];
$counts = array_count_values($colors);

print_r($counts);

该函数计算每种颜色的出现次数。“red”出现 3 次,“blue”出现 2 次,“green”出现 1 次。输出是一个关联数组。

计算整数值

此示例显示了如何计算数组中整数值的出现次数。

integer_count.php
<?php

$numbers = [1, 2, 3, 2, 1, 1, 1, 3];
$counts = array_count_values($numbers);

print_r($counts);

数字 1 出现频率最高(4 次)。数字 2 和 3 各出现两次。该函数对整数和字符串的处理方式相同。

混合值类型

此示例演示了混合字符串和整数值时的行为。

mixed_values.php
<?php

$mixed = ["apple", 1, "orange", 1, "apple", "1"];
$counts = array_count_values($mixed);

print_r($counts);

请注意,整数 1 和字符串 "1" 被视为相同的值。该函数在计数之前将所有值转换为字符串。

处理无效值

此示例显示了数组包含无效值时会发生什么。

invalid_values.php
<?php

$data = ["a", "b", 3.14, ["array"], null];
$counts = @array_count_values($data); // Suppress warnings

print_r($counts);

浮点数、数组和 null 值会触发警告并被排除在结果之外。输出中只计算有效的字符串和整数值。

实际应用

此示例展示了分析调查响应的实际用例。

survey_analysis.php
<?php

$responses = [
    "Excellent", "Good", "Fair", "Good",
    "Excellent", "Poor", "Good", "Excellent"
];

$ratings = array_count_values($responses);
arsort($ratings); // Sort by count descending

foreach ($ratings as $rating => $count) {
    echo "$rating: $count responses\n";
}

这会通过计算每个评分来分析调查响应。然后对结果进行排序,以首先显示最常见的响应,从而提供快速的洞察。

最佳实践

来源

PHP array_count_values 文档

本教程通过实际示例介绍了 PHP 的 array_count_values 函数,展示了其在计算值频率方面的用法。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在教学编程方面拥有超过十年的经验。

列出 所有 PHP 数组函数