php - 计算 CSV 列中相似值的数量

标签 php csv

我有几个 .csv 文件,我试图循环遍历并读取特定列的值,并计算每个值出现的频率。例如,其中一个文件中的第三列,我们将其称为 $col[2],如下所示:

HEADER
foo
bar
bar
bar
foo

我可以使用以下代码计算 foobar 在文件中出现的次数:

$file = ('Path/To/Random/File.txt');

$fh = fopen($file, 'rb');

$tag = array();
while($col = fgetcsv($fh)) {
    $tag[$col[2]]++;
}

print_r($tag);

Result:

5

但是,此代码返回 col[2] 中所有值的计数。如何指定我想要的 foobar 值的数量,仅拆分为哪个计数属于哪个值?例如,结果将如下所示:

echo $foo_count;
echo $bar_count;

Result:

2
3

最佳答案

我会这样做:

$file = ('Path/To/Random/File.txt');

$fh = fopen($file, 'rb');

$tag = array();
while($col = fgetcsv($fh)) {

if (isset($tag[$col[2]])) {
   $tag[$col[2]]++;
}
else {
   $tag[$col[2]] = 1;
}

确保$col[2]实际上包含您想要测量/迭代的值

一旦你应该有一个类似的数组,请使用print_r来检查

'foo' => 2,
'bar' => 3

关于php - 计算 CSV 列中相似值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059379/

相关文章:

php - 如何在 PHP 中获取动态名称的多个单选按钮值

javascript - 使用 wordpress 制作 Javascript 幻灯片

php - 写时复制会防止阵列上的数据重复吗?

java - csv 文件中的反斜杠

java - 如果输入 tsv 文件具有 ' or ",则 CSVListReader 从 tsv 文件读取会中断

php - 将表单与 PHP 脚本链接以从数据库中检索数据

PHP 限制输出中的行或字符

csv - 使用 Play! 下载 .csv框架

c - 如何使用 sscanf 读取带有继续逗号的一行 csv

python - 在 pandas/python 中,读取存储为字符串的数组