解决方案 »

  1.   


    $s='88A242,88A106,88A109,92A129,92A068,2000A291,2000A216,2014A063,2014A315';
    $arr=explode(',',$s);
    natsort($arr);echo "<pre>";
    print_r($arr);
    echo "</pre>";
      

  2.   


    $str='88A242,88A106,88A109,92A129,92A068,2000A291,2000A216,2014A063,2014A315';
    $str1=str_replace('A','.',$str);
    $arr=explode(',',$str1);
    sort($arr,SORT_NUMERIC);
    $str2=implode(',',$arr);
    $str3=str_replace('.','A',$str2);
    echo $str3;
    88A106,88A109,88A242,92A068,92A129,2000A216,2000A291,2014A063,2014A315
      

  3.   

    不好意思,忘记说明了,因为是从数据库里,所以希望读出来的时候就已经是排好的,而不是需要再用php处理的
      

  4.   

    create temporary table T (a varchar(10));insert into T (a) values ('88A242'),('88A106'),('88A109'),('92A129'),('92A068'),('2000A291'),('2000A216'),('2014A063'),('2014A315');select * from T order by lpad(a, 10, '0');a 
    88A106 
    88A109 
    88A242 
    92A068 
    92A129 
    2000A216 
    2000A291 
    2014A063 
    2014A315 
      

  5.   

    建议存数据的时候同时存入hash值,查找的时候按照hash排序
    至于怎么计算hash值,查查,不难。
     
      

  6.   


    可以啦,求解釋,lpad(a, 10, '0')
      

  7.   

    LPAD(str,len,padstr) 
    返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。