读第一个文件,一行一行的读,以空格分开第一段与第二段
并将值存到数据库中
数据库的结构为:
id first second
1    80 136781402531
2    20 51176187841
3  1953 12197351907然后读第二个文件,看first的值有没有,如果有的话就把值相加,如果没有就添加,最后以second值排序

解决方案 »

  1.   

    有没有不用数据库的方法,直接用php.或,找个什么规律?
      

  2.   

    就按lapmx(易家)的思想, 用数组来做就可以啦.
    先把文件1和文件2按第1列排序, 然后利用类似合并排序的思想来做合并和加法, 最后再排一次序.
      

  3.   

    <?php
    ###get ip1
    $fp=@fopen("/data/12345","r");$i1=0;
      while ($array= fgetcsv($fp,50," "))
        {
         for($j=0;$j<2;$j++)
           {
            $ip1[$i1][$j]=$array[$j];
           }
         $i1+=1;
        }
    echo $ip1[10][1];
    echo " ";
    echo "$i1";###get ip2
    $fp=@fopen("/data/22345","r");$i2=0;
      while ($array= fgetcsv($fp,50," "))
        {
         for($j=0;$j<2;$j++)
           {
            $ip2[$i2][$j]=$array[$j];
           }
         $i2+=1;
        }
    echo $ip2[10][1];
    echo " ";
    echo "$i2";
    ### Vergleichen und addieren
    for ($j=0;$j<=$i2;$j++)
        {
         for ($n=0;$n<=$i1;$n++)
             {
              if ($ip1[$n][0] == $ip2[$j][0])
               {
                $ip1[$n][1]=$ip1[$n][1]+$ip2[$j][1];
                break;
               }
              if ($n=$i1)
                {
                 $ip1[$n+1][0]=$ip2[$j][0];
                 $ip1[$n+1][1]=$ip2[$j][1];
                 $i1=$i1+1;
                }
             }                
             
        }   
    for ($z=0;$z<=$i1;$z++)
    {
    echo $ip1[$z][0]."<br>";
    }
    ### neu Datei schreiben
    ?>