下面这段代码
$a='mrsoft1';
$b='MRSOFT2';
echo strnatcmp($a,$b);
结果是1,我想咨询下,为啥前面的字符大于后面的字符,谢谢啦

解决方案 »

  1.   

    字符串比较时,是自左向右逐个字符进行的,遇到不相同的字符就结束
    比较的依据是字符的内码值
    m 的内码是 109
    M 的内码是 77
    由于 109 大于 77,所以 m 大于 M
    于是串 $a 大于 $b
      

  2.   

    老大,如果是计算机排序,strcmp这个也是$a>$b吧?
      

  3.   

    不是有两种吗?
     strnatcmp()这个函数是自然排序吗?
    strcmp()这个不也是比较两个函数嘛
      

  4.   

    函数strnatcmp()用的是自然排序方法啊