假如有个这样的一维数组:
$num=array(1,2,333,3444,222,2,1,333,34444,55,22,222,333,5后面还有很多数);
如何将他们分类统计,也就是1出现几次,2出现几次,等等,
然后引申出数据里面的多表的查询记录如何统计出来?比如说一个老师可能带了很多个班,一门课可能有很多个老师带,
这样东西如何统计,在线等。

解决方案 »

  1.   


    $num=array(1,2,333,3444,222,2,1,333,34444,55,22,222,333,5);
    print_r(array_count_values($num));
      

  2.   

      
    fStaff  intParent  chrDomain  
    1000 11883 sr-dexing-jc.gov.cn 
    1000 270091 cmj687.com 
    1000 11883 12pin.com 
    1000 11883 saturnhardware.com 
    1000 11883 s3lh.com 
    1001 271823 fsdfergergerger.tv 
    1001 271821 ladjjk008008.cn 
    1001 267128 nownownownow.cn 
    1001 267128 ee.cn 
    1001 267128 dlskhfajdgdslgkl.cc 
    1001 266660 ddsge1213.cn 
    1001 271919 gasdvsafafafdsa.cn 
    1001 271919 daiwhdiuwahkfjhsdkjf.cn 
    1001 271919 dgjlwekjfisjflkjsd.cn 
    1001 271919 cjwelfjlsefkljhsdkjvnekj.cn 
    1001 271919 seflkjfesijflsmclsdjvglk.cn 
    1001 271919 cahefhlawejflawjflj.cn 
    1001 271919 bmjdfkjgsdjirjglsej.cn 
    1001 266660 ddddd.com 
    1001 271919 vsdfjlgjriejoigldsafhfkuweha.cn 
    1001 271919 vhfehygoewuoirtouerpgdfhsl.cn 
    1001 266660 mycdfgadga.com 
    1001 271919 dsfnajlhvnkdnvkndvfelkgfhwa.cn 
    1001 266660 chinasds.cn 
    1001 264809 sdfgdfgdfgdfgghgh.net 
    1001 264809 sdfsafsa.tv 
    1001 267128 eee123abc.cc 
    1001 267128 df.com 
    1001 267128 sddsdsoffice.cn 
    1001 267128 kdsldgdsadgl.cn 
    后面还有很多记录fStaff(代表某个人)  intParent(代表某个人)这两个字段是一对一的关系,但是fStaff名下如果出现多个相同的intParent只能算一个,就你是这样:fStaff代表总货物公司,intParent代表批发商,chrDomain 代表货物,一个批发商(intParent)可以像fStaff货物公司购买好多chrDomain,所以会出现好多记录,但是他只能算一个批发商,重复的要去掉,怎么做啊?
      

  3.   

    效率太低,一定要用php
    数据很大
      

  4.   

    $num=array(1,2,333,3444,222,2,1,333,34444,55,22,222,333,5);
    $hash;
    foreach($num as $x){
          if(is_null($hash[$x])){
                 $hash[$x] = 0;     
         }
         $hash[$x]++;
    }foreach($hash as $key=>$value){
        echo "$key=>$value";
    }
    知道了吗
      

  5.   

    group by吧,php取出那么多数据的时间都够mysql统计完了,
    其实php的统计运算时间会比mysql慢,当统计百万级数据的时候就有明显差距
      

  6.   


    PHP中有一个数组函数 array_count_values -- 统计数组中所有的值出现的次数,
    你统计出来再打印出来就可以了。