全球主机交流论坛

标题: 一个文本里,如果遇到有相同的字符串,就自动增加个其... [打印本页]

作者: muyang    时间: 2014-7-1 19:34
标题: 一个文本里,如果遇到有相同的字符串,就自动增加个其...
本帖最后由 muyang 于 2014-7-1 20:21 编辑

感谢楼下的兄弟帮忙解决
作者: psdshow    时间: 2014-7-1 19:34

  1. <?php
  2. $txtfile = '1.txt';
  3. $data = file($txtfile);
  4. $arr = $arr_key = array();

  5. for($i=0;$i<count($data);$i++){
  6.         $key = trim($data[$i]);
  7.         if($key == ''){
  8.                 continue;
  9.         }
  10.         if(!array_key_exists($key,$arr_key)){
  11.                 $arr[] = $key;
  12.                 $arr_key[$key] = 0;
  13.         }else{
  14.                 $arr_key[$key]++;
  15.                 $arr[] = $key.$arr_key[$key];
  16.         }
  17. }

  18. $fp = fopen($txtfile,'w');
  19. fwrite($fp,implode("\n",$arr));
  20. fclose($fp);
复制代码

作者: psdshow    时间: 2014-7-1 19:49
数千行可以用数组处理

据说数组超过60000后开始随机丢失数据
作者: psdshow    时间: 2014-7-1 22:14
本帖最后由 psdshow 于 2014-7-1 22:23 编辑
  1. <?php
  2. $txtfile = '1.txt';
  3. $data = file($txtfile);
  4. $arr = $arr_key = array();

  5. for($i=0;$i<count($data);$i++){
  6.         $string = trim($data[$i]);
  7.         if($string == ''){
  8.                 continue;
  9.         }
  10.         $tmp = explode('@',$string);
  11.         $key = $tmp[1];
  12.         if(!array_key_exists($key,$arr_key)){
  13.                 $arr[] = $string;
  14.                 $arr_key[$key] = 0;
  15.         }else{
  16.                 $arr_key[$key]++;
  17.                 $arr[] = $string.$arr_key[$key];
  18.         }
  19. }

  20. //备份一下原来的文件
  21. copy($txtfile,$txtfile.'.bak');
  22. //保存
  23. $fp = fopen($txtfile,'w');
  24. fwrite($fp,implode("\n",$arr));
  25. fclose($fp);
复制代码

作者: 槛外人    时间: 2014-7-1 22:16
psdshow 发表于 2014-7-1 22:14

太厉害了高手,很佩服。
作者: psdshow    时间: 2014-7-1 22:24
sort多此一举 去掉了
作者: muyang    时间: 2014-7-1 22:32
感谢兄弟多次帮忙,已完美解决各种混搭。。




欢迎光临 全球主机交流论坛 (https://sunk.eu.org/) Powered by Discuz! X3.4