用随机启动php删除重复行

时间:2016-11-23 07:58:08

标签: php duplicates

我有一个包含以下数据的文件:

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仍然来自重复的条目,那也没关系。

3 个答案:

答案 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; 
    }
}
?>