用随机启动PHP删除重复线



我有一个包含这样的数据的文件:

randomString-data1
randomString-data2
randomString-data4
randomString-data2
randomString-data2
randomString-data3
randomString-data4

我想要的输出:

randomString-data1
randomString-data2
randomString-data4
randomString-data3

随机字符串的长度在20至25个字符之间。随机串并不重要。仅相关的数据。删除此类重复项的最佳方法是什么?

我所能想到的只是爆炸" - "每行爆炸的蛮力方式。但是有更好的方法吗?

注意:随机字符串很重要。但是,如果有重复条目中的任何一个随机弦仍然保留。

爆炸和数组翻转,然后获取数组键

$content_array = explode($file_contents);
//Remove duplicate entries
$flipped_array = array_flip($content_array);
file_put_contents('/path/to/file', implode("n", array_keys($flipped_array));

首先通过' 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;
}

我会这样做

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

最新更新