[英]Display same word in text file using PHP
我有如下文本文件:
text.txt
lebuzzdesbonsplans.com;hotmail.com;26608;828;3.11
lebuzzdesbonsplans.com;hotmail.fr;24798;876;3.53
friendcorp.fr;yahoo.fr;11343;0;0
friendcorp.fr;free.fr;9856;12;.12
friendcorp.fr;wanadoo.fr;9283;1;.01
messengear.fr;free.fr;9090;11;.12
messengear.fr;laposte.net;8107;2;.02
....................................
....................................
PHP代码:
<?php
$PMTA_FILE = file_get_contents("text.txt");
$lineFromText = explode("\n", $PMTA_FILE);
$title = "";
$domain = "";
foreach($lineFromText as $line){
$data = explode(";",$line);
$domain = $data[0];
if (array_key_exists($domain, $domains_seen)){
continue;
}
$domains_seen[$domain] = true;
echo $domain;
echo "<br>";
echo $data[2];
echo "<br>";
}
?>
但是这段代码的结果是:
lebuzzdesbonsplans.com
26608
friendcorp.fr
11343
messengear.fr
9090
我不想要上面的结果,我需要下面的结果:
lebuzzdesbonsplans.com
26608
24798
friendcorp.fr
11343
9856
9283
messengear.fr
9090
8107
有人知道吗请帮助我获得解决方案。
您可以使用
$lines = array_reduce(file("text.txt", FILE_IGNORE_NEW_LINES), function ($a, $b) {
$b = str_getcsv($b, ";");
$a[$b[0]][] = $b[2];
return $a;
});
foreach($lines as $k => $values)
{
echo $k,PHP_EOL;
echo implode(PHP_EOL, $values);
echo PHP_EOL;
}
产量
lebuzzdesbonsplans.com
26608
24798
friendcorp.fr
11343
9856
9283
messengear.fr
9090
8107
natsort($lineFromText);
foreach($lineFromText as $line){
$data = explode(";",$line);
$domain = $data[0];
if (!array_key_exists($domain, $domains_seen)){
echo $domain;
echo "<br>";
}
echo $data[2];
echo "<br>";
$domains_seen[$domain] = true;
}
更新:首先对行进行排序-这样,所有域都将被收集在一起,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.