我有一个包含以下数据的文件:
randomString-data1
randomString-data2
randomString-data4
randomString-data2
randomString-data2
randomString-data3
randomString-data4
我想要的输出:
randomString-data1
randomString-data2
randomString-data4
randomString-data3
随机字符串的长度在20到25个字符之间。 randomString并不重要。之后的数据仅与之相关。什么是删除此类重复项的最佳方法?
我所能想到的只是以“ - ”爆炸每一行的蛮力方式,并与其他所有人进行比较。但是有更好的方法吗?
注意:随机字符串很重要。但是,如果任何一个randomString仍然来自重复的条目,那也没关系。
答案 0 :(得分:1)
首先通过' \ n'然后由' - '
$arr = explode('\n', $str);
$data = array();
foreach($arr as $val)
{
$temp = explode("-", $val);
$data[$temp[1]] = $temp[0];
}
$str = "";
foreach($data as $k => $v)
{
$str .= $v . "-" . $k;
}
答案 1 :(得分:1)
爆炸和数组翻转,然后获取数组键
"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<html>\r\n\t<head>\r\n\t\t<title>中华人民共和国环境保护部--政府网站数据中心</title>\r\n\t\t<meta http-equiv=\"content-type\" content=\"text/html;
答案 2 :(得分:1)
我会这样做
<?php
$file = <<<EOF
randomString-data1
randomString-data2
randomString-data4
randomString-data2
randomString-data2
randomString-data3
randomString-data4
EOF;
$found = [];
foreach (explode("\n", $file) as $line) {
list(, $date) = explode('-', $line);
if (!isset($found[$date])) {
echo "$line<br>";
$found[$date] = true;
}
}
?>