已知一段数据:
Bin                        Test Item
7   000000000000-----------------11-1--1-1--1----11---1-1-1-1----1--11-1----------10-111-0---1011------11------11--------------------------------------------------1
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
6   000000000000-----------------01-1--0-0--0----10---0-0-0-0----0--00-0----------01-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
1   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0
5   000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-1----------00-000-0---0000------00------00--------------------------------------------------0其中Test Item是一个1-160长度的字符串,bin的取值范围为1-8。例中bin出现的值为1,5,6,7。bin和Test Item能不能得到类似以下格式:bin1|1|2|3|4|..|160,
bin2|1|2|3|4|..|160,
bin3|1|2|3|4|..|160,
bin4|1|2|3|4|..|160,
bin5|1|2|3|4|..|160,
bin6|1|2|3|4|..|160,
bin7|1|2|3|4|..|160,
bin8|1|2|3|4|..|160,向高手求相应的代码。

解决方案 »

  1.   

    1.首先,你那么大一串数据串是存储在文件中?
    2.bin值为1的有那么多行,在最终的格式中只有一行,这个又怎么个处理法呢?
      

  2.   

    也就是说,拿你给的串做例子
    最终bin1对应的串应为
    bin1|0|0|0|......|0|
    表示bin1在各列数值中,1出现的次数都为0.
      

  3.   

    楼主,你在把你的问题,说清楚一点。最起码要介绍一下这两件文件的相关性或者Test Item 这个文件,那字节是区别其它行的标志,这样才能处理呀。
      

  4.   

    还是不太理解LZ的意思。
    如果源数据是在一个文件中的话,那用file() 函数读取这文件。一行返回一个数组。
    统计个数的话,可以用substr_count()这个函数。
      

  5.   

    是的。foolbirdflyfirst 理解的正确。回iwantnet,这个例子说明bin和test item的关系。其中bin 取值(1-8),test item是1-160个项。
    可能我要用函数将字符串分割成数组,即将test item分成160个项。然后就是求,当bin为多少时,对应的test item 值为1的个数。
    例如,当bin为1时,test item 1-160项的值为1的个数都是0。即 bin1|0|0|0|0|...|0 。
      

  6.   

    大致了解。写了段短的,只是大致思路,还得加不少代码才能到最终效果。$bin1[] = '100000000000-----------------10-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------1';
    $bin1[] = '110000000100-----------------10-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------1';$arr = array();
    //字符串直接用bin1[$i]表示在$i位置的字符,统计该位置值为1的个数
    for ($i=0;$i<160;$i++) {
    $count = 0; //用于计算1出现的次数
    foreach ($bin1 as $b1){
    if ($b1[$i] == '1') {
    $count++;
    }
    $arr[$i] = $count;
    }
    }//输出
    echo 'bin1';
    for ($p=0; $p<160; $p++){
    echo "|$arr[$p]";
    }
      

  7.   

    好像没有得到bin和test item两者间的关系,只是求了下test item的个数。
      

  8.   

    唉,问题的很多方面需要你自己准备好。
    以下供参考。
    $a[] = '7  000000000000-----------------11-1--1-1--1----11---1-1-1-1----1--11-1----------10-111-0---1011------11------11--------------------------------------------------1';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '6  000000000000-----------------01-1--0-0--0----10---0-0-0-0----0--00-0----------01-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '5  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-1----------00-000-0---0000------00------00--------------------------------------------------0';foreach($a as $v)
    {
    $i = 0;
    $o = preg_split("/\s+/",$v); if($c[$o[0]])
    {
    for(;$i<160;$i++)
    {
    if($o[1][$i] == 1)
    {
    $c[$o[0]][$i] = (int)$c[$o[0]][$i]+1;
    }
    }
    }
    else $c[$o[0]] = $o[1];
    }foreach($c as $k=>$v)
    {
    $s[$k] = "bin{$k}";
    for($j=0;$j<160;$j++)
    {
    $s[$k] .= "|".($v[$j]=='-' ? '0' : $v[$j]);
    }
    }
    echo implode("<br/>",$s);
      

  9.   

    楼上能不能帮我改下格式?固定格式输出:
    bin1|1|2|3|4|..|160, 
    bin2|1|2|3|4|..|160, 
    bin3|1|2|3|4|..|160, 
    bin4|1|2|3|4|..|160, 
    bin5|1|2|3|4|..|160, 
    bin6|1|2|3|4|..|160, 
    bin7|1|2|3|4|..|160, 
    bin8|1|2|3|4|..|160, 这个样子。
      

  10.   

    不是的,按照例子的输出:
    bin7|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|1|0|0|1|0|1|0|0|1|0|0|0|0|1|1|0|0|0|1|0|1|0|1|0|1|0|0|0|0|1|0|0|1|1|0|1|0|0|0|0|0|0|0|0|0|0|1|0|0|1|1|1|0|0|0|0|0|1|0|1|1|0|0|0|0|0|0|1|1|0|0|0|0|0|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1
    bin1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0
    bin6|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|1|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0
    bin5|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0我是想能不能按照格式输出:不管有没有都一样(可能要预设一个数组)
    bin1|......
    bin2|......
    bin3|......
    bin4|......
    bin5|......
    .....
    bin8|......
      

  11.   

    ...
    for($i=1;$i<=160;$i++)
    {
      $num[] = $i;
    }for($n=1;$n<=8;$n++)
    {
      $format[] = "bin{$n}|".implode("|",$num);
    }
    echo implode(",<br/>",$format);
      

  12.   

    $a[] = '7  000000000000-----------------11-1--1-1--1----11---1-1-1-1----1--11-1----------10-111-0---1011------11------11--------------------------------------------------1';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '6  000000000000-----------------01-1--0-0--0----10---0-0-0-0----0--00-0----------01-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '1  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-0----------00-000-0---0000------00------00--------------------------------------------------0';
    $a[] = '5  000000000000-----------------00-0--0-0--0----00---0-0-0-0----0--00-1----------00-000-0---0000------00------00--------------------------------------------------0';foreach($a as $v)
    {
    $i = 0;
    $o = preg_split("/\s+/",$v); if($c[$o[0]])
    {
    for(;$i<160;$i++)
    {
    if($o[1][$i] == 1)
    {
    $c[$o[0]][$i] = (int)$c[$o[0]][$i]+1;
    }
    }
    }
    else $c[$o[0]] = $o[1];
    }for($i=1;$i<=160;$i++)
    {
      $num[] = 0;
    }for($n=1;$n<=8;$n++)
    {
      $s[$n] = "bin{$n}|".implode("|",$num);
    }
    foreach($c as $k=>$v)
    {
    $s[$k] = "bin{$k}";
    for($j=0;$j<160;$j++)
    {
    $s[$k] .= "|".($v[$j]=='-' ? '0' : $v[$j]);
    }
    }echo implode(",<br/>",$s);
      

  13.   

    如果结合这个文档:http://d.download.csdn.net/down/1377867/lazygc520
    代码应该如何修改?
    我的代码部分:
    $no = count($myfile);
    for($index = 35;$index < $no;$index++)
    {     
    if(ereg("RE-TEST",$myfile[$index]))
    break;
    else
    {
    $dutdata =preg_split("/[\s,]+/",trim($myfile[$index]));
    if($dutdata[12] == '')
    {
    $dutdata = explode("\t",trim($myfile[$index]));
    //print_r($dutdata);
    }
    if($dutdata[12] != '')
    {
    $dutdata[33] = $dutdata[33] +0;
    $dutdata[12] = $dutdata[12] +0;
    $databin[$dutdata[12]][$dutdata[33]] ++;
    //echo $dutdata[12].'==>'.$dutdata[33].'<br>';
    }
    }
    }
      

  14.   

    $no = count($myfile); 
    for($index = 35;$index < $no;$index++) 
    {    
    if(ereg("RE-TEST",$myfile[$index])) 
    break; 
    else 

    $dutdata =preg_split("/[\s,]+/",trim($myfile[$index])); 
    if($dutdata[12] == '') 

    $dutdata = explode("\t",trim($myfile[$index])); 
    //print_r($dutdata); 

    if($dutdata[12] != '') 

    $dutdata[33] = $dutdata[33] +0; 
    $dutdata[12] = $dutdata[12] +0; 
    $databin[$dutdata[12]][$dutdata[33]] ++; 
    //echo $dutdata[12].'==>'.$dutdata[33].' <br>'; 


    }
    重新贴一下。
      

  15.   

    晕。
    你是想求Bin值(第2列),和最后一列的对应关系?
      

  16.   

    不是的,应该是$dutdata[33]和$dutdata[34]的关系。我想求得ST和最后一个长串的关系。
    $dutdata[12]和$dutdata[33]是我已经求得的关系。(MUT=>ST)
      

  17.   

    23楼 得分:0
    不是的,应该是$dutdata[33]和$dutdata[34]的关系。我想求得ST和最后一个长串的关系。
    $dutdata[12]和$dutdata[33]是我已经求得的关系。(MUT=>ST)
    ========================================================================
    对照主帖,也就是说33列是bin值,34列是Test item?
    另外你提供的例子文件P90751300L.OWM,33列并不是MUT,34也不是ST.....这个你是否确认过?
    参考例子如下。$no = count($myfile); 
    for($index = 35;$index < $no;$index++) 
    {    
    if(ereg("RE-TEST",$myfile[$index])) 
    break; 
    else 

    $dutdata =preg_split("/[\s,]+/",trim($myfile[$index])); 
    //print_r($dutdata); 
    //exit;
    if($dutdata[12] == '') 

    $dutdata = explode("\t",trim($myfile[$index]));  } 
    if($dutdata[12] != '') 

    $dutdata[33] = $dutdata[33] +0; 
    $dutdata[12] = $dutdata[12] +0; 
    $databin[$dutdata[12]][$dutdata[33]] ++; 
    //echo $dutdata[12].'==>'.$dutdata[33].' <br>'; 

    $c[$dutdata[33]] = $dutdata[34];//建立33,34的关系,类似数组$c[1] = '0000000---101010010.....'

    }
    //套用这段代码.
    for($i=1;$i<=160;$i++)
    {
      $num[] = 0;
    }for($n=1;$n<=8;$n++)
    {
      $s[$n] = "bin{$n}|".implode("|",$num);
    }
    foreach($c as $k=>$v)
    {
        $s[$k] = "bin{$k}";
        for($j=0;$j<160;$j++)
        {
            $s[$k] .= "|".($v[$j]=='-' ? '0' : $v[$j]);
        }
    }echo implode(",<br/>",$s);
      

  18.   

    奥,我上面那个参考例子没有考虑叠加
    $c[$dutdata[33]][] = $dutdata[34];//应该这样
    然后循环$c数组,把1-160位,各列出现1的次数叠加,再最终生成数组结合套用的代码
      

  19.   

    得到的结果:
    bin1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin3|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin4|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin5|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|1|0|1|0|0|0|0|1|0|0|1|1|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin6|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|1|0|0|0|0|1|0|0|0|0|0|0|0|1|1|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin7|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|1|0|0|1|0|1|0|0|1|0|0|0|0|1|1|0|0|0|1|0|1|0|1|0|1|0|0|0|0|1|0|0|1|1|0|1|0|0|0|0|0|0|0|0|0|0|1|1|0|1|1|1|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1,bin8|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|1|0|0|1|0|1|0|0|1|0|0|0|0|1|1|0|0|0|1|0|1|0|1|0|1|0|0|0|0|1|0|0|1|1|0|1|0|0|0|0|0|0|0|0|0|0|1|1|0|1|1|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0,bin||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||怎么多了一个bin
      

  20.   

    上面那个不对~没考虑叠加,试试这个
    $no = count($myfile); 
    for($index = 35;$index < $no;$index++) 
    {    
    if(ereg("RE-TEST",$myfile[$index])) 
    break; 
    else 

    $dutdata =preg_split("/[\s,]+/",trim($myfile[$index])); 
    if($dutdata[12] == '') 

    $dutdata = explode("\t",trim($myfile[$index]));  } 
    if($dutdata[12] != '') 

    $dutdata[33] = $dutdata[33] +0; 
    $dutdata[12] = $dutdata[12] +0; 
    $databin[$dutdata[12]][$dutdata[33]] ++; 
    //echo $dutdata[12].'==>'.$dutdata[33].' <br>'; 

    if($dutdata[33] != '') 
    $c[$dutdata[33]][] = $dutdata[34];//建立33列,34列的关系

    }
    //生成默认bin数组。
    for($i=1;$i<=160;$i++)
    {
      $num[] = 0;
    }for($n=1;$n<=8;$n++)
    {
      $c2[$n] = "bin{$n}|".implode("|",$num);
    }
    //循环求各个bin求对应的1出现次数
    foreach($c as $k=>$v)
    {
    if(!$c2[$k]) $c2[$k] = array();
    $c2[$k] = "bin{$k}|".getOneCount($v);
    }
    //叠加相同bin,求各列1出现的次数
    function getOneCount($arr,$limit=160)
    {

    for($i=1;$i<=$limit;$i++)
    {
    $s[$i] = 0;
    foreach($arr as $k=>$v)
    {
    $s[$i] += $v[$i-1];
    }
    } return implode('|',$s);
    }
    echo "<pre/>";
    print_r($c2);exit;
      

  21.   

    最后的一句我是不是应该改一下,我要将显示的数据保存在一个变量中,例如$test_item这样的。
      

  22.   

    Call to undefined function getOneCount() in ...
    没有定义。
      

  23.   

    数据对了没有呢?我打印出来只是为了方便调试。
    存成个变量还不简单呀?
    最后一行
    $test_item = implode("<br/>",$c2);
      

  24.   

    ...............
    你copy全了没有?仔细看看30楼
      

  25.   

    相同的代码,用你提供的文件P90751300L.OWM,可得结果Array
    (
        [1] => bin1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [2] => bin2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [3] => bin3|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|8370|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [4] => bin4|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|4|0|2|1|1|4|15|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|16|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [5] => bin5|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|35|1|0|0|0|0|0|0|0|0|0|0|143|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|194|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [6] => bin6|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|1|0|1|1|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|1|1|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0
        [7] => bin7|77|239|0|0|0|0|149|0|2|70|91|0|0|0|0|0|0|0|0|0|0|0|0|106|109|111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|184|258|0|202|0|0|0|0|0|0|232|259|187|235|226|243|230|0|201|170|157|152|0|0|260|260|260|260|0|0|257|234|227|256|211|167|0|0|0|233|0|257|257|257|228|254|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|227|0|231|230|0|0|0|0|0|0|0|0|0|0|232|0|0|0|0|0|0|0|0|0|0|0|0|0|0|229|268|1|0|24|6|0|0|0|0|0|0|0|0|0|0
        [8] => bin8|0|0|0|0|0|0|29|0|5|29|17|0|0|0|0|0|0|0|0|0|0|0|0|27|25|30|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|49|77|0|33|0|0|0|0|0|0|69|94|12|18|78|81|64|0|72|56|20|20|0|0|90|90|87|86|0|0|105|81|87|105|67|52|0|0|0|86|0|91|90|90|83|105|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|58|0|71|70|0|0|0|0|0|0|0|0|0|0|70|0|0|0|0|0|0|0|0|0|0|0|0|0|0|79|160|1|0|24|6|0|0|0|0|0|0|0|0|0|0
    )
      

  26.   

    那你把getOneCount函数提到调用之前,真诡异。
      

  27.   

     $c2[$k] = "bin{$k}|".getOneCount($v);是说这行getOneCount没定义。
      

  28.   

    你把这个函数的声明提到调用之前,就是$c2[$k] = "bin{$k}|".getOneCount($v); 这行的前面,或者直接扔到程序页面的最开头
    我真的是很怀疑,你到底有没有copy
    //叠加相同bin,求各列1出现的次数
    function getOneCount($arr,$limit=160)
    {
        
        for($i=1;$i<=$limit;$i++)
        {
            $s[$i] = 0;
            foreach($arr as $k=>$v)
            {
                $s[$i] += $v[$i-1];
            }
        }    return implode('|',$s);
    }
    这段代码