使用PHP计算文件中最常出现的行?
我有一个PHP脚本,它在文件末尾附加一个字符串。然后我希望能够读取该文件,找出每行出现的次数,然后计算最常出现的行和它们的数字。例如,如果我有:使用PHP计算文件中最常出现的行?,php,arrays,file,list,count,Php,Arrays,File,List,Count,我有一个PHP脚本,它在文件末尾附加一个字符串。然后我希望能够读取该文件,找出每行出现的次数,然后计算最常出现的行和它们的数字。例如,如果我有: williamtdr chicken chicken williamtdr williamtdr pig 我会得到: williamtdr, 3 chicken, 2 pig, 1 在PHP中有什么方法可以做到这一点吗 谢谢 //$data = file_get_contents('yourfile.txt'); // get file conte
williamtdr
chicken
chicken
williamtdr
williamtdr
pig
我会得到:
williamtdr, 3
chicken, 2
pig, 1
在PHP中有什么方法可以做到这一点吗
谢谢
//$data = file_get_contents('yourfile.txt'); // get file contents
$data = 'williamtdr
chicken
chicken
williamtdr
williamtdr
pig';
$data = explode("\n", $data); // split data at each newline
$data = array_count_values($data); // count occurrences of each line
print_r($data);
将输出:
Array
(
[williamtdr] => 3
[chicken] => 2
[pig] => 1
)
[]
如果您想要与您的问题相同的输出,您可以这样循环:
foreach ($data as $word => $count)
{
echo $word . ', ' . $count . "\n";
}
或者,最好是这样做:
$data = file('yourfile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$data = array_count_values($data);
将输出:
Array
(
[williamtdr] => 3
[chicken] => 2
[pig] => 1
)
[]
如果您想要与您的问题相同的输出,您可以这样循环:
foreach ($data as $word => $count)
{
echo $word . ', ' . $count . "\n";
}
或者,最好是这样做:
$data = file('yourfile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$data = array_count_values($data);
在现实生活中你会怎么做 您将打开文件,然后开始计数:
$file = file('file.txt');
$counts = array();
foreach ($file as $line) {
$line = trim($line);
if ( ! isset($counts[$line]) {
$counts[$line] = 1;
} else {
$counts[$line]++;
}
}
var_dump($counts);
在现实生活中你会怎么做 您将打开文件,然后开始计数:
$file = file('file.txt');
$counts = array();
foreach ($file as $line) {
$line = trim($line);
if ( ! isset($counts[$line]) {
$counts[$line] = 1;
} else {
$counts[$line]++;
}
}
var_dump($counts);
你试过什么吗?
str\u word\u count()
可以是一个好的开始,结合array\u count\u values()
可能。你试过什么吗?str\u word\u count()
可以是一个好的开始,结合array\u count\u values()
可能。