background image

    }
    //以 uid 为 key 去看该值是否存在
    if(empty($result[$uid]))
    {
        $result[$uid] = 1;
    }
}

fclose($fp);

//将结果保存到文件
$content = '';
foreach($result as $k => $v)
{
    $content .= $k."\n";
}
$fp = fopen('result.txt', 'w');
fwrite($fp, $content);
fclose($fp);
?>

20 多行代码,就可以对百万以上的数据进行排重,效率也不错,非常实用。手机号 、
email,也可以采用这种方式进行排重。

还有,这可方法还可以用于两个文件进行排重的工作,如果你有两个 uid 列表文件,

格式和上面的 uid 列表一样,示例程序如下:
<?php
//定义数组,用于存放排重后的结果
$result = array();
//读取第一个 uid 列表文件,放入$result_1
$fp = fopen('test_1.txt', 'r');

while(!feof($fp))
{
    $uid = fgets($fp);
    $uid = trim($uid);
    $uid = trim($uid, "\r");
    $uid = trim($uid, "\n");

    if($uid == '')
    {
        continue;
    }
    //以 uid 为 key 写入$result,如有重复就会覆盖
    $result[$uid] = 1;