datetime       companyid   busiid  mobile     type fileid
2006-08-04 00:00:00    23    00000235 13599993553     2       221
2006-08-04 00:30:10    25       00000356  13685156666        2           256
2006-08-04 00:30:20     25       00000556  13685156666        1           246
2006-08-04 00:30:50     25       00000356  13685156666        2           256
.....
发的都乱了,看这个吧

解决方案 »

  1.   

    function get_busiid($file,$companyid,$distance){
    $file = file ($file);
    $file_line_number = count($file);
    for($i=1;$i<$file_line_number;$i++){
    $file_line[$i] = explode($distance, $file[$i]);
    if($file_line[$i][1] == $companyid){
    $companyid = $file_line[$i][2];
    echo $companyid;
    }
    }
    }$distance是文件中的每行中每项内容之间的间距
      

  2.   

    或者。
    $logfile= logtxt.txt";
    if(file_exists($logfile)){
        $all_arr =array();
        $tag = "";
        $fp = fopen($logfile, "r");
        while ($buffer = fgets($fp, 4096)) {
            $exp = @explode("\t",$buffer);
            $visit_time = substr($exp[0],0,15);
            $companyid = $exp[1]; 
            $mobile = $exp[3]; 
            $type = $exp[4]; 
            $fileid = $exp[5]; 
    $tag=$visit_time.",".$companyid.",".$mobile.",".$type.",".$fileid;
    $all_arr[$tag]+=1;    }
        fclose( $fp );
    }$all_arr 数组应该就是你要的结果了。同一分钟,同companyid,mobile,type,fileid
      

  3.   

    1、你给出的数据格式有问题,至少不是程序生成的
    用程序生成时,字段间的分隔符要么是制表符要么是空格符。
    决不会是你这样两者混用且数量不等2、如果有统一的分隔符就可以方便的用fgetcdv读取数据了。但对于你的格式,需要自行书写函数
    function get_data($fp) {
      $but = fgets($fp);
      if(! $buf) return false;
      return split("[\t ]+", $buf);
    }
    使用
    $fp = fopen($filenane, 'r');
    while($row = get_data($fp)) {
    ....
    }
    fclose($fp);
    对于你的数据,返回的数组依次为
    date、time、companyid、busiid、mobile、type、fileid
    只有下标可用3、你的查询要求令人费解,还请描述清楚
    取companyid的个数则在上面的循环里
    $ret[$row[2]]++;
    即可
    其他约束条件可自行加入
      

  4.   

    /**
    我要查询某一companyid对应的busiid的个数(相同mobile ,相同type,相同fileid,1分钟内的重复不算),这样的值怎么取?
    */
    1:取得原始数据;
    2:分解原始数据;
    3:依你的要求过滤分解后数据;
    4:存入库或其他存储方式中;
    5:重复上述步骤;